mehrere mySQL-Abfragen in einem String

Dac-XP

Erfahrenes Mitglied
Hi!

Der Titel mag vielleicht ein wenig verwirren, aber ich hoffe, ihr versteht, was ich meine.
Vorweg: Google und Boardsuche wurden schon konsultiert. Ergebnisse brachte das leider nicht.

Also ich möchte einfach nur mehrere mySQL-Abfragen in einem "Rutsch" ausführen (lassen).

PHP:
  $query = "CREATE TABLE names (
             id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
             nick VARCHAR( 50 ) NOT NULL ,
             name VARCHAR( 50 ) NOT NULL ,
             fname VARCHAR( 50 ) NOT NULL
             ) TYPE = MYISAM;

             CREATE TABLE names2 (
             id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
             nick VARCHAR( 50 ) NOT NULL ,
             name VARCHAR( 50 ) NOT NULL ,
             fname VARCHAR( 50 ) NOT NULL
             ) TYPE = MYISAM;";

  if($erg = mysql_query($query))
  	{
    	echo "Tabellen wurden erstellt.";
    }

Leider funktioniert dieses doch recht simple Script bei mir nicht. Nehme ich jetzt aber die zweite Tabelle raus, funktioniert das wunderbar. Wenn ich die Tabellen direkt über mySQL (per PHPmyAdmin) erstelle, funktioniert es ebenfalls einwandfrei. Nur eben nicht unter PHP.

PHP-Version ist 5.2.3
MySQL-Version ist 5.0.45

Jetzt meine Frage: Wieso funktioniert das nicht?
 
Hi!

Danke für die Antwort. Aber daran lag es nicht.
Den Kommentaren zu dem Befehl ist allerdings zu entnehmen (undzwar ziemlich deutlich), dass multiple Abfragen nicht mehr möglich sind, um so Sicherheitslecks zu vermeiden.
Meiner Meinung nach ist das ein wenig dämlich, da man sich auch anders gegen SQL-Injections schützen kann, aber gut...

Dann schreib ich mir halt eine Funktion, die die Abfragen automatisch aufteilt und einzelnd ausführt. Ist ja auch ne schöne Übung. ;)

Danke nochmal!
 
Sofern du die MySQLi Schnittstelle nutzen möchtest, bietet sich [phpf]mysqli_multi_query[/phpf] an, was in deiner Anwendung aus Effizienzgründen höchstwahrscheinlich zu präferieren ist.
 
Mhh muss ich mich mal drüber schlau machen.

Danke!

/edit: Super, das ist genau das, was ich gesucht habe.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück