guten abend
Ich habe ein Problem mit einer, für meine Begriffe etwas komplexere, sql-Anweisung. Wenn ich sie mit mysqli::multi_query() werden falsche Werte eingetragen und updates nicht richtig ausgeführt. Wenn ich aber dieselbe Anweisung über php-myAdmin ausführe dann klappt alles. Daraus schliesse ich, dass die Anweisung stimmt.
Meiner Meinung nach sollte es doch keinen Unterschied machen ob ich nun die Anweisung mit muli_query oder direkt ausführe.
Jetzt meine Frage weiss jemand woran das liegen kann? Hat das etwas mit der mysqli::multi_query() zu tun?
wie kann ich das beheben
$sql = sprintf("UPDATE %s SET lft = lft-%s, rgt = rgt-%s, updated = 1
WHERE lft >=%s AND rgt <=%s AND updated = 0;
UPDATE %s SET lft = lft+%s, rgt = rgt+%s, updated = 1
WHERE lft < %s AND updated = 0;
UPDATE guestbook SET updated = 0;
UPDATE %s SET rgt=rgt+2 WHERE rgt >= %s;
UPDATE %s SET lft=lft+2 WHERE lft > %s;
INSERT INTO %s (Titel, Eintrag, Autor, lft, rgt) VALUES ('%s', '%s', '%s', %s, %s)",
$this->dbGuestbook,
$offset_lft,
$offset_lft,
$row['max_lft'],
$row['max_rgt'],
$this->dbGuestbook,
$offset_rgt,
$offset_rgt,
$row['max_lft'],
$this->dbGuestbook,
$row['rgt']-$offset_lft,
$this->dbGuestbook,
$row['rgt']-$offset_lft,
$this->dbGuestbook,
$Titel,
$Eintrag,
$Autor,
($row['rgt']-$offset_lft),
($row['rgt']-$offset_lft+1)
);
$this->db_connect();
$result = $this->mysqli->multi_query($sql);
print_r($sql);
Ich verwende:
Apache/2.2.10 (Win32) PHP/5.2.6
MySQL-Client-Version: 5.0.51a
im Voraus besten Dank