ich bin gerade etwas am Verzweifeln. Ich nutze XAMPP 1.7.3 unter Windows 7.
In einer meiner PHP Klassen habe ich folgende Funktion:
- Code: Select all
public function ExecuteQuery($query, $params)
{
$stmt = $this->pdo->prepare($query);
if (!$stmt->execute($params))
{
print_r($stmt->errorInfo());
die("MySQL query error");
}
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor();
$stmt = NULL;
return $result;
}
Wenn ich diese Funktion mehrfach hintereinander aufrufe mit einem "CALL test()" (Diese Prozedur enthält nur "SELECT * FROM testtable;"), erhalte ich beim 2. Aufruf die Fehlermeldung:
Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
Das PDO-Objekt wird wie folgt instanziiert:
- Code: Select all
$this->pdo = new PDO($dsn, $this->username, $this->password,
array(
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true
));
Natürlich habe ich schon gegoogelt, auch schon viele Lösungsvorschläge (PDO::MYSQL_ATTR_USE_BUFFERED_QUERY setzen, closeCursor() aufrufen, PDOStatement Objekt löschen) gefunden, aber bisher hat bei mir nichts geholfen.
Gibt es noch weitere Ideen dazu?
Vielen Dank im Voraus!
BitEater