問題:
您需要執行兩個單獨的SQLSQL查詢並處理他們的結果在PHP 中獨立。查詢是:
SELECT SQL_CALC_FOUND_ROWS Id, Name FROM my_table WHERE Name LIKE '%prashant%' LIMIT 0, 10; SELECT FOUND_ROWS();
答案:
在 PHP 中使用標準 mysql_ 擴展,不可能將多個查詢作為單一交易執行。但是,您可以透過以下步驟獲得所需的結果:
$query1 = "SELECT SQL_CALC_FOUND_ROWS Id, Name FROM my_table WHERE Name LIKE '%prashant%' LIMIT 0, 10;"; $result1 = mysql_query($query1);
$query2 = "SELECT FOUND_ROWS();"; $result2 = mysql_query($query2);
$rows1 = mysql_fetch_all($result1, MYSQL_ASSOC);
$totalRows = mysql_fetch_row($result2)[0];
執行下列步驟,您可以獨立執行兩個查詢並單獨處理它們的結果。請注意,這種方法不如將它們作為單一事務執行那麼有效,但這是使用 mysql_ 擴充實現所需結果的唯一方法。
替代解決方案(已棄用):
更新: 以前認為可以使用mysql_connect() 函數在一條語句中執行多個查詢帶有旗幟。但是,此方法已被棄用,不應使用。
現代解決方案:
對於現代 PHP 應用程序,建議使用 PDO(PHP 數據) Objects) 用於資料庫交互的擴展。 PDO 提供了一種更面向物件且一致的方式來執行 SQL 查詢並檢索其結果。使用 PDO,您可以如下執行兩個查詢:
$pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password'); $stmt1 = $pdo->prepare($query1); $stmt2 = $pdo->prepare($query2); $stmt1->execute(); $rows1 = $stmt1->fetchAll(PDO::FETCH_ASSOC); $stmt2->execute(); $totalRows = $stmt2->fetchColumn();
此解決方案比舊的 mysql_ 擴充功能更有效率且更易於使用。
以上是如何在 PHP 中獨立執行多個 MySQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!