在PHP/MySQL 中執行多個MySQL 查詢
簡介
執行多個SQL同時查詢可以提高資料庫處理的效率。本文探討如何在 PHP/MySQL 中將兩個 MySQL 查詢當作一個執行,解決有效處理單獨結果集的需求。
問題定義
考慮以下兩個MySQL查詢:
SELECT SQL_CALC_FOUND_ROWS Id, Name FROM my_table WHERE Name LIKE '%prashant%' LIMIT 0, 10; SELECT FOUND_ROWS();
第一個查詢從my_table中取得數據,第二個查詢計算總數表中的行數。
PHP 執行
通常,這些查詢是使用 mysql_query() 函數單獨執行的。但是,這種方法並沒有提供單獨處理各個結果集的方法。
$result1 = mysql_query($query1); $result2 = mysql_query($query2);
多個查詢執行
要在一次嘗試中執行兩個查詢,可以使用 mysqli_multi_query() 函數。此函數允許順序執行多個查詢:
$mysqli = new mysqli('hostname', 'username', 'password', 'database_name'); mysqli_multi_query($mysqli, $query1 . ';' . $query2);
處理結果集
執行查詢後,可以使用mysqli_store_result() 檢索結果集function:
$result1 = $mysqli->store_result(); $result2 = $mysqli->store_result();
現在,你可以單獨迭代每個結果集,類似如何在ASP.NET中使用資料集處理它:
while ($row1 = $result1->fetch_assoc()) { // Process row data from the first query } while ($row2 = $result2->fetch_assoc()) { // Process row data from the second query }
注意
需要注意的是,mysqli_multi_query() 函數只能在以下情況下使用:各個查詢是獨立的,不依賴彼此的結果。
以上是如何在 PHP 中同時執行多個 MySQL 查詢並處理單獨的結果集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!