Mysql
 sql >> база данни >  >> RDS >> Mysql

Изпълнение на множество SQL заявки в един израз с PHP

Минете 65536 към mysql_connect като 5-ти параметър.

Пример:

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

Когато работите с mysql_fetch_* или mysql_num_rows, или mysql_affected_rows, само първият израз е валиден.

Например, следните кодове, първият израз е INSERT, не можете да изпълните mysql_num_rows и mysql_fetch_*. Добре е да използвате mysql_affected_rows, за да върнете колко реда са вмъкнати.

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

Друг пример, следните кодове, първият израз е SELECT, не можете да изпълните mysql_affected_rows. Но можете да изпълните mysql_fetch_assoc, за да получите двойка ключ-стойност от ред, получена от първия оператор SELECT, или можете да изпълните mysql_num_rows, за да получите броя на редовете въз основа на първия оператор 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TIMEDIFF() срещу SUBTIME() в MySQL:Каква е разликата?

  2. Как да извършвате непрекъснати надстройки за MySQL

  3. Как да съхранявате дата и час в MySQL с информация за часовата зона

  4. Как да съхранявате няколко опции в една таблица?

  5. Анализирайте датата в MySQL