suntrop
Erfahrenes Mitglied
Hallo.
Ich finde einfach nicht heraus wie ich ein MySQLi-Objekt freigeben kann.
Ich erhalten nämlich folgende Meldung: Commands out of sync; you can't run this command now
Das tritt nach einem multi_query() mit zwei UPDATEs auf. Habe gelesen, dass hier mysqli_free_result die Lösung wäre.
Jetzt habe ich hunderte Schreibweisen getestet, aber keine funktioniert.
Was muss ich den "befreien"? Mein DB-Objekt ($db)? Ein wirkliches $result gibt es doch bei den zwei UPDATES gar nicht?!
Der Fehler tritt immer bei der nachfolgenden SELECT-Abfrage auf. Z.B.:
Hier noch die Funktion freeRes() in der DB-Klasse:
Hat jemand einen Rat für mich?
Ich finde einfach nicht heraus wie ich ein MySQLi-Objekt freigeben kann.
Ich erhalten nämlich folgende Meldung: Commands out of sync; you can't run this command now
Das tritt nach einem multi_query() mit zwei UPDATEs auf. Habe gelesen, dass hier mysqli_free_result die Lösung wäre.
Jetzt habe ich hunderte Schreibweisen getestet, aber keine funktioniert.
PHP:
$sql = '
UPDATE `users` SET
`username` = ' . $db->quoteSmart($_POST['userUsername']) . ',
`password` = md5(' . $db->quoteSmart($_POST['userUserpassword']) . '),
`lastChange` = NOW()
WHERE
id = ' . $db->quoteSmart($givenUserId) . ';';
$sql .= '
UPDATE `userdetails` SET
`gender` = ' . $db->quoteSmart($_POST['userGender']) . ',
`title` = ' . $db->quoteSmart($_POST['userTitle']) . ',
`firstName` = ' . $db->quoteSmart($_POST['userFirstName']) . ',
(…)
`businessBranchId` = ' . $db->quoteSmart($_POST['userBranch']) . ',
`mailFromAdmin` = ' . $db->quoteSmart($_POST['userAllowEmailsAdmin']) . ',
`mailFromUser` = ' . $db->quoteSmart($_POST['userAllowEmails']) . '
WHERE
userId = ' . $db->quoteSmart($givenUserId);
PHP:
if ($db->multi_query( $sql )) {
do {
if ($db->store_result()) {
echo 'test!<br>';
}
} while ($db->store_result());
} else {echo 'test2<br>'; }
$db->freeRes($result);
Was muss ich den "befreien"? Mein DB-Objekt ($db)? Ein wirkliches $result gibt es doch bei den zwei UPDATES gar nicht?!
Der Fehler tritt immer bei der nachfolgenden SELECT-Abfrage auf. Z.B.:
PHP:
$sql = '
SELECT
ud.id,
ud.firstName AS Vorname,
ud.lastName AS Nachname
FROM
userdetails ud
LEFT JOIN (
users u
)
ON (
u.id = ud.userId
)
WHERE
u.id = ' . $user->getProperty('id');
$result = $db->sql($sql);
while ($row = $result->fetch_assoc()) {
$theUser = $row;
}
Hier noch die Funktion freeRes() in der DB-Klasse:
PHP:
function freeRes($givenresult){
$givenresult->free_result();
}
Hat jemand einen Rat für mich?