[PHP] mysql_query macht nur Unsinn! Ich verzweifle...
-
Hi leute!
Ich habe folgenden Query aus phpMyAdmin erstellt:
$sql = 'CREATE TEMPORARY TABLE IF NOT EXISTS memory_table ( ' . ' id varchar(2) collate latin1_general_ci NOT NULL, ' . ' PRIMARY KEY (id) ' . ' ) ENGINE=MEMORY DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; ' . ' ' . ' INSERT INTO memory_table (id) VALUES ' . ' (\'AX\'), ' . ' (\'XA\'); ' . ' ';
In phpMyAdmin läuft der Query erste Sahne, aber wenn ich es in PHP5 versuche mit mysql_query aufzurufen kommt nur Strunks raus:
$result = mysql_query ($sql); echo mysql_error ();
Error:
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 '; INSERT INTO memory_table (id) VALUES ('AX'), ('XA')' at line 1
Das ist doch irgendwo total komisch. Wieso kann ich ein Query das unter phpMyAdmin läuft nicht mit mysql_query ausführen?!
Erstell ich jedoch erst die Memory-Tabelle und dann in einem seperaten Query die Inserts, dann geht es lustigerweise. Davon bin ich jedoch nicht sehr begeistert, da ich erstens trennen muss und zweitens ich nicht weiß, ob die tabelle im 2. Query noch existiert, wegen temporary und memory.
Weiß jemand rat?
-
Ich glaub die php-variante kann nur einen SQL-Befehl pro Aufruf ausführen oder irgendwie sowas gabs da...
-
Hi,
danke für die Info!
Ich habe grade durch Zufall folgendes gefunden:
http://bugs.mysql.com/bug.php?id=25900Darin wird auf eine Funktion namens mysqli_multi_query verwiesen, die Multiple Querys erlaubt.
mysqli_multi_query: http://de.php.net/manual/de/function.mysqli-multi-query.phpLeider jedoch erst ab PHP5 verfügbar, aber egal. Man muss halt mit der Zeit gehen