Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ausführen mehrerer SQL-Abfragen in einer Anweisung mit PHP

Übergeben Sie 65536 zu mysql_connect als 5. Parameter.

Beispiel:

$conn = mysql_connect('localhost','username','password', true, 65536 /* here! */) 
    or die("cannot connect");
mysql_select_db('database_name') or die("cannot use database");
mysql_query("
    INSERT INTO table1 (field1,field2) VALUES(1,2);

    INSERT INTO table2 (field3,field4,field5) VALUES(3,4,5);

    DELETE FROM table3 WHERE field6 = 6;

    UPDATE table4 SET field7 = 7 WHERE field8 = 8;

    INSERT INTO table5
       SELECT t6.field11, t6.field12, t7.field13
       FROM table6 t6
       INNER JOIN table7 t7 ON t7.field9 = t6.field10;

    -- etc
");

Wenn Sie mit mysql_fetch_* oder mysql_num_rows oder mysql_affected_rows arbeiten, ist nur die erste Anweisung gültig.

Zum Beispiel die folgenden Codes, die erste Anweisung ist INSERT, Sie können mysql_num_rows und mysql_fetch_* nicht ausführen. Es ist in Ordnung, mysql_affected_rows zu verwenden, um zurückzugeben, wie viele Zeilen eingefügt wurden.

$conn = mysql_connect('localhost','username','password', true, 65536) or die("cannot connect");
mysql_select_db('database_name') or die("cannot use database");
mysql_query("
    INSERT INTO table1 (field1,field2) VALUES(1,2);
    SELECT * FROM table2;
");

Ein weiteres Beispiel, die folgenden Codes, die erste Anweisung ist SELECT, Sie können mysql_affected_rows nicht ausführen. Aber Sie können mysql_fetch_assoc ausführen, um ein Schlüssel-Wert-Paar von Zeilen zu erhalten, die aus der ersten SELECT-Anweisung resultieren, oder Sie können mysql_num_rows ausführen, um die Anzahl der Zeilen basierend auf der ersten SELECT-Anweisung zu erhalten.

$conn = mysql_connect('localhost','username','password', true, 65536) or die("cannot connect");
mysql_select_db('database_name') or die("cannot use database");
mysql_query("
    SELECT * FROM table2;
    INSERT INTO table1 (field1,field2) VALUES(1,2);
");