PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrfache SQL-Anweisung



Compuholic
09-06-2003, 22:29
Hi,

ich habe vor kurzen gelesen, daß es mit der neuesten Version von PHP und MySQL möglich ist mehrere SQL-Anweisungen in einen mysql_query() Aufruf zu packen. Dazu muß man sich aber mit der Option CLIENT_MULTI_QUERIES mit der Datenbank verbinden.

Soweit so gut. Ich dacht mir: Probieren wir es mal aus. Ich übergebe folgenden Query-String:
select dest from messages where user=$UID; update messages set read = 1 where user=$UID;

Trotzdem wird immer FALSE zurückgegeben. Also wird das als ungültige Anfrage interpretiert. Hat jemand eine Idee warum? Oder hat jemand schon mal damit gearbeitet, so das er mir vielleicht einen Code-Ausschnitt geben kann.

Danke.

paladin
10-06-2003, 02:03
http://www.mysql.com/doc/en/C_API_multiple_queries.html

Mfg

Compuholic
10-06-2003, 08:55
Diese Seite kenn ich auch schon. Aber

1. Handelt es sich hier um die C-API.
2. Gibt es in PHP keine Funktion namens mysql_init oder mysql_real_connect

Hat jemand von euch das vielleicht schon mal in PHP realisiert. Die PHP Dokumentation sagt, daß es mit mysql_connect möglich ist. Leider ist kein Beispielcode dabei, so das ich nicht sehen kann, was ich falsch gemacht habe. Es treten auch sehr seltsame Fehler scheinbar zufällig auf. So bekommen ich hin und wieder die Fehlermeldung:

Warning: Access denied for user dummy@localhost to db 'log' [...]

Der Witz daran ist. Ich greife nie auf eine Datenbank namens "log" zu, noch existiert eine solche Datenbank. Merkwürdigerweise sagt diese Fehlermeldung auch, daß dieser Fehler in einer Zeile in meinem Script aufgetreten ist in der die mysql_connect() Anweisung steht. Und die hat ja eigentlich noch gar nichts mit dem Zugriff auf irgendeine Datenbank zu tun.
Wie gesagt der Fehler tritt scheinbar zufällig auf. Meistens funktioniert alles einwandfrei (ohne das ich etwas am Script verändert hätte) mit der Ausnahme, daß ich immer nur eine Anfrage auf einmal durchführen kann.

Die Anweisung sieht folgendermaßen aus:
$fp = mysql_connect('localhost', 'dummy', '', FALSE, CLIENT_MULTI_QUERIES);