PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UPDATE Query funktioniert nicht



Vatex
05-11-2006, 19:13
Hallo,

ich habe es bereits im phpBB Forum versucht, allerdings wusste da offensichtlich niemand Bescheid. Hoffe hier gibt es jemanden der sich damit auskennt.

Beim Aufruf der Funktion sync (http://www.phpbb.de/doku/xref/includes/functions_admin.php.source.html#l60) Wird der UPDATE Befehl zwar ausgeführt, hat allerdings keinerlei Wirkung. Ich habe mir den SQL Query mit echo ausgeben lassen und über phpmyadmin ausgeführt, es hat problemlos funktioniert.

Die sync (http://www.phpbb.de/doku/xref/includes/functions_admin.php.source.html#l60) Funktion wird in der posting.php (http://www.phpbb.de/doku/xref/nav.html?includes/functions_admin.php.source.html#l60) in der Zeile 609 aufgerufen. Erfolgt der Aufruf in der index.php arbeitet die Funktion tadellos.

Finde es sehr seltsam!

Deshalb habe ich, um zu sehen ob der Query wirklich nicht ausgeführt wird, eine Abfrage mit mysql_affected_rows durchgeführt und um ganz sicher zu gehen die sync funktion danach nochmal aufgerufen, mit dem Ergebnis das der Query nicht ausgeführt wird und die sync Funktion beim zweiten Durchlauf nochmal denselben UPDATE Query durchlaufen will.

Das ist der besagte Query:

UPDATE phpbb_forums SET forum_last_post_id = 9890, forum_posts = 32, forum_topics = 32 WHERE forum_id = 46

Die forum_id existiert, wie gesagt der Query an sich funktioniert auch, zumindest über phpmyadmin.

Wer kann mir da weiterhelfen?

Gruss

Vatex

elrond
06-11-2006, 11:31
wenn das update ausserhalb des scripts funktioniert, gibt's drei möglichkeiten:

1. Ausführung innerhalb einer Transaktion, die nicht committed wird
2. deiner Query foögt im weiterem Programmablauf eine weitere, die dein update wieder rückgängig macht
3. deine Query wird nicht an die db übergeben

vllt. solltest du die Logs deiner db mal anschauen, ggf. loglevel erhöhen, um zu sehen, was wirklich passiert. Erscheint im Log nichts, wird dein update offensichtlich nicht an die db übergeben... ist aber alles spekulation :cool:

Vatex
09-11-2006, 12:02
Das danach ein Query folgt, der meine Änderungen wieder Rückgängig macht kann ich ausschliessen.

Ich habe keinerlei Zugriff auf die Logs, kann also nicht 100%tig Prüfen ob der Query übergeben wird. Allerdings funktioniert die Funktion nur nicht wenn sie aus dem Script aufgerufen wird und das jedesmal, aus anderen Scripten heraus funktioniert die Funktion jedesmal einwandfrei.

Wollte einen möglichen Fehler mit mysql_error() auffangen, allerdings gibt mysql_error() nichts zurück.