sql >> Databasteknik >  >> RDS >> Mysql

Exekvera flera SQL-frågor i en sats med PHP

Passera 65536 till mysql_connect som 5:e parameter.

Exempel:

$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
");

När du arbetar med mysql_fetch_* eller mysql_num_rows, eller mysql_affected_rows, är bara den första satsen giltig.

Till exempel följande koder, den första satsen är INSERT, du kan inte köra mysql_num_rows och mysql_fetch_*. Det är okej att använda mysql_affected_rows för att returnera hur många rader som infogats.

$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;
");

Ett annat exempel, följande koder, den första satsen är SELECT, du kan inte köra mysql_affected_rows. Men du kan köra mysql_fetch_assoc för att få ett nyckel-värdepar av rader från den första SELECT-satsen, eller så kan du köra mysql_num_rows för att få antal rader baserat på den första SELECT-satsen.

$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);
");


  1. Ställ in NOW() som standardvärde för datetime datatype?

  2. Laravel 5 PDOException kunde inte hitta drivrutinen

  3. Vad är STATISTICS IO i SQL Server?

  4. Hur aktiverar jag MySQL-frågelogg?