Max F 4 жил өмнө
parent
commit
f1c3ea614d

+ 20 - 1
src/Database/Sql/Drivers/Mysqli/MySqliDriver.php

@@ -10,6 +10,8 @@ use \KarmaFW\Database\Sql\SqlResultSetError;
 
 class MySqliDriver extends SqlDriver implements SqlDriverInterface
 {
+	protected $current_recordset = null;
+
 
 	public function connect()
 	{
@@ -48,7 +50,24 @@ class MySqliDriver extends SqlDriver implements SqlDriverInterface
 			return null;
 		}
 
-		$rs = mysqli_query($this->conn, $query);
+		$mode_use_result = false; // TODO: ce mode permet de ne pas stocker tout le resultat en local (ideal pour les gros resultats qui depassent la RAM)
+		if ($mode_use_result && $this->current_recordset) {
+			mysqli_free_result($this->current_recordset);
+			$this->current_recordset = null;
+
+			$rs = mysqli_query($this->conn, $query, MYSQLI_USE_RESULT);
+
+		} else {
+			$rs = mysqli_query($this->conn, $query);
+		}
+
+
+		if (is_bool($rs)) {
+			$this->current_recordset = null;
+
+		} else {
+			$this->current_recordset = $rs;
+		}
 
 		$error_code = $this->getConn()->errno;
 		if ($error_code) {