Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

php / mysql với nhiều truy vấn

Cảm ơn php.net, tôi đã đưa ra một giải pháp:bạn phải sử dụng (mysqli_multi_query($link, $query)) để chạy nhiều truy vấn nối.

 /* 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));
}

CHỈNH SỬA - Giải pháp ở trên hoạt động nếu bạn thực sự muốn thực hiện một truy vấn lớn nhưng cũng có thể thực hiện nhiều truy vấn tùy thích và thực thi chúng một cách riêng biệt.

$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. Mysqli_real_escape_string có đủ để tránh SQL injection hoặc các cuộc tấn công SQL khác không?

  2. MySQL THAM GIA VÀ SỬ DỤNG?

  3. Hàm MySQL ACOS () - Trả về Arc Cosine của một số

  4. Xóa các hàng sql trong đó ID không khớp với bảng khác

  5. Cách bật nhật ký truy vấn chậm trong AWS RDS MySQL