sql >> Databáze >  >> RDS >> Mysql

Provádění více SQL dotazů v jednom příkazu pomocí PHP

Předejte 65536 na mysql_connect jako 5. parametr.

Příklad:

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

Když pracujete s mysql_fetch_* nebo mysql_num_rows nebo mysql_affected_rows, je platný pouze první příkaz.

Například následující kódy, první příkaz je INSERT, nemůžete spustit mysql_num_rows a mysql_fetch_*. Pomocí mysql_affected_rows můžete vrátit počet vložených řádků.

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

Další příklad, následující kódy, první příkaz je SELECT, nemůžete spustit mysql_affected_rows. Ale můžete spustit mysql_fetch_assoc a získat pár klíč-hodnota řádku, který je výsledkem prvního příkazu SELECT, nebo můžete spustit mysql_num_rows a získat počet řádků na základě prvního příkazu SELECT.

$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. ZKONTROLUJTE omezení u data narození?

  2. Microsoft Access Web App vs Desktop Database

  3. Jak aktualizovat vybrané řádky hodnotami ze souboru CSV v Postgresu?

  4. Jak srovnávat výkon PostgreSQL