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

php/mysql с множество заявки

Благодарение на php.net измислих решение:трябва да използвате (mysqli_multi_query($link, $query)) за изпълнение на множество свързани заявки.

 /* create sql connection*/
$link = mysqli_connect("server", "user", "password", "database");

$query = "SQL STATEMENTS;"; /*  first query : Notice the 2 semicolons at the end ! */
$query .= "SQL STATEMENTS;"; /* Notice the dot before = and the 2 semicolons at the end ! */
$query .= "SQL STATEMENTS;"; /* Notice the dot before = and the 2 semicolons at the end ! */
$query .= "SQL STATEMENTS"; /* last query : Notice the dot before = at the end ! */

/* Execute queries */

if (mysqli_multi_query($link, $query)) {
do {
    /* store first result set */
    if ($result = mysqli_store_result($link)) {
        while ($row = mysqli_fetch_array($result)) 

/* print your results */    
{
echo $row['column1'];
echo $row['column2'];
}
mysqli_free_result($result);
}   
} while (mysqli_next_result($link));
}

РЕДАКТИРАНЕ – Решението по-горе работи, ако наистина искате да направите една голяма заявка, но също така е възможно да изпълните толкова заявки, колкото желаете, и да ги изпълните отделно.

$query1 = "Create temporary table A select c1 from t1"; 
$result1 = mysqli_query($link, $query1) or die(mysqli_error());

$query2 = "select c1 from A"; 
$result2 = mysqli_query($link, $query2) or die(mysqli_error());

while($row = mysqli_fetch_array($result2)) {

echo $row['c1'];
    }  


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изтриете цялата база данни на MySQL

  2. MySQL преобразува изхода timediff във формат ден, час, минута, секунда

  3. GROUP_CONCAT ПОРЪЧАЙ ОТ

  4. Условие WHERE в MySQL с 16 различни примера за заявка

  5. Изтрийте от две таблици в една заявка