forTeesSake Geschrieben 5. Januar 2005 Geschrieben 5. Januar 2005 hi und hallo. folgendes problem: ich möchte mehrere UPDATES in php hintereinander ausführen. hier mal pseudomässig der code: for($i=1;$i<=7;$i++){ query.= "UPDATE TABLE SET x = ".$i." WHERE id = ".$i.";"; } mysql_query($query); nun gut ich erhalte also 7 UPDATES mit ; getrennt. wenn ich das in php, also auf meiner webseite ausführe wird immer nur EIN vorgang ausgeführt. die anderen sind der maschine egal. wenn ich mir aber der query ausgeben lasse und ihn kopiere und im MySQL Control Center oder phpMyAdmin als sql-statement ausführe werden alle UPDATE vorgänge ausgeführt. bin am verzweifeln. ist das vielleicht ne einstellung am apache? oder mysql.ini file??? *zweifel*
forTeesSake Geschrieben 5. Januar 2005 Autor Geschrieben 5. Januar 2005 das selbe problem tritt natürlich auch einzeln auf, also ohne for-schleife: query= "UPDATE TABLE SET x = 1 WHERE id = 1"; mysql_query($query); query= "UPDATE TABLE SET x = 2 WHERE id = 2"; mysql_query($query); query= "UPDATE TABLE SET x = 3 WHERE id = 3"; mysql_query($query); . . .
kills Geschrieben 5. Januar 2005 Geschrieben 5. Januar 2005 hm mysql_error() bleibt stumm? Das das ganze mit einem Langen Query-String nicht geht dachte ich mir, aber die einzlenen sollten doch gehen ... ? Gruß, Markus
forTeesSake Geschrieben 5. Januar 2005 Autor Geschrieben 5. Januar 2005 nix bei mysql_error() . leider. und wie gesagt, komisch isses dass es in phpMyAdmin ja auch mit dem langen geht...
kills Geschrieben 7. Januar 2005 Geschrieben 7. Januar 2005 heisst deine tabelle table? vielleicht baut der phpMyAdmin auch noch ein paar '' o. `` o.ä. an den String rann? vielleicht irgendwelche schlüsselwörter im select als tabellen/spaltennamen?
forTeesSake Geschrieben 7. Januar 2005 Autor Geschrieben 7. Januar 2005 es geht jetzt. ich weiss aber nicht woran es lag. ich hab dann noch so oft geändert und gemacht und getan. zum schluss schon irgendwie in einem trance artigen zustand hauptsache es läuft. aber es geht nur wenn ich die abfragen nacheinander ausführe, also nicht mir einem langen query. grüsse und dank forTeesSake
kills Geschrieben 7. Januar 2005 Geschrieben 7. Januar 2005 es geht jetzt. ich weiss aber nicht woran es lag. ich hab dann noch so oft geändert und gemacht und getan. zum schluss schon irgendwie in einem trance artigen zustand hauptsache es läuft. aber es geht nur wenn ich die abfragen nacheinander ausführe, also nicht mir einem langen query. grüsse und dank forTeesSake Servus, du musst dir ne eigenen funktion bauen wenn du semikolon getrennt mehrere SQLs absetzen willst. einfach den SQL string am ";" auftrenen (explode) und dann jeden einzeln absetzen. Du kannst ja die ganzen SQLs dann in eine Transaktion zusammen packen und falls einer auf einen Fehler läuft, per ROLLBACK alles wieder rückgängig machen Gruß, Markus
forTeesSake Geschrieben 8. Januar 2005 Autor Geschrieben 8. Januar 2005 aha! so wird das dann wahrscheinlich in pypmyadmin auch gemacht nehme ich an. sehr schön! danke mal wieder
schnagels Geschrieben 8. Januar 2005 Geschrieben 8. Januar 2005 @forTeesSake Wenn ich das jetzt richtig verstanden habe, führt er das nur einmal aus. Das liegt vielleicht daran, dass du das mysql_query... hinter die Schleife gesetzt hast und nicht ind die Schleife. Denn nur ind der Schleife führt er das dann so oft aus, wir du es angegeben hast. siehe mal hier: for($i=1;$i<=7;$i++){ query.= "UPDATE TABLE SET x = '$i' WHERE id = '$i'"; mysql_query($query); } So ungefähr müsste das auch gehen. Aber vergiss nicht die Tabelle anzugeben. Kann sein, dass du das vergessen hast.
forTeesSake Geschrieben 9. Januar 2005 Autor Geschrieben 9. Januar 2005 @schnagels. du hast recht! mann mann. peinlich echt ,) vielen dank
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden