Hilfe! mysql_query ist nur einmal verwendbar...
depp
- php
moin
wenn ich
mysql_query('DELETE FROM produkte WHERE (shop_id="4004757008414");');
mysql_query('DELETE FROM produkte WHERE (shop_id="4004757008415");');
ausführe, so gehts problemlos.
ABER wenn ich nun mehrere aufgaben auf einmal durchführen lasse, so meldet er nen fehler.
mysql_query('DELETE FROM produkte WHERE (shop_id="4004757008414");DELETE FROM produkte WHERE (shop_id="4004757008415");');
=>You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ';DELETE FROM produkte WHERE (shop_id="4004757008414")' at line
man beachte: ' at line' und es folgt nix mehr danach. also keine zeilennr. ka, aber das is komisch. wenn ich den syntax in phpmyadmin ausführen lasse, so klappts.
danke für hilfe!
Hi depp,
ABER wenn ich nun mehrere aufgaben auf einmal durchführen lasse, so meldet er nen fehler.
richtig, du kannst mit mysql_query() auch nur einen Befehl abschicken
ka, aber das is komisch. wenn ich den syntax in phpmyadmin ausführen lasse, so klappts.
PHPMyAdmin trennt den einen langen String auch anhand von ; in einzelne Befehle auf und führt diese dann einzeln aus.
MfG, Dennis.
Hallo depp,
jo ganz richtig, man kann immer nur 1 Befehl pro Query machen.
Das hat den Grund das man sich so vor SQL Injections schützt.
Beispiel:
$email = $_POST["email"];
$id = $_POST["id"];
UPDATE tabelle Set email = '$email' WHERE id = '$id'
Was ist wenn in $id folgendes Übergeben wird:
2'; DELETE FROM tabelle; #
Das würde dann so aussehen:
UPDATE tabelle Set email = '$email' WHERE id = '2'; DELETE FROM tabelle; #
So würde er dir alle Datensätze aus der tabelle löschen.
Aber man könnte es auch so machen:
DELETE FROM produkte WHERE shop_id='4004757008414' OR shop_id='4004757008415';
Da löscht er alle Einträge die 4004757008415 ODER 4004757008414 als shopid haben.
MFG
Andavos