首頁 >資料庫 >mysql教程 >如何解決 MySQLi 使用巢狀查詢時出現的「指令不同步」錯誤?

如何解決 MySQLi 使用巢狀查詢時出現的「指令不同步」錯誤?

Linda Hamilton
Linda Hamilton原創
2024-12-08 07:29:10541瀏覽

How to Resolve the

使用MySQLi 時出現「指令不同步」

問題:

An嘗試同時執行多個MySQLi 查詢會觸發「命令不同步」錯誤。嵌套查詢檢索分層資料。

原因:

當正在進行的查詢中的行保持未取得狀態時,MySQL 不允許執行新查詢。

解決方案:

選項1:使用mysqli_store_result()

$result = mysqli_store_result($db);
// Execute subsequent queries

這會緩衝🎜>這會緩衝的行,允許執行多個查詢。

選項2:使用mysqli_result::fetch_all()

$result = mysqli_query($db, $sql);
$data = mysqli_fetch_all($result, MYSQLI_ASSOC);
// Execute subsequent queries

這將傳回整個結果集作為數組,允許執行多個查詢。

注意事項:

巢狀查詢表示分層資料儲存。考慮替代資料模型或使用 CodeIgnitor 等框架來使用 mysqli_next_result() 處理來自預存程序的多個結果集。

CodeIgnitor 實作:

// Edit code in system/database/drivers/mysqli/mysqli_driver.php
protected function _execute($sql)
{
    $results = $this->conn_id->query($this->_prep_query($sql));
    @mysqli_next_result($this->conn_id); // Fix 'command out of sync' error
    return $results;
}

以上是如何解決 MySQLi 使用巢狀查詢時出現的「指令不同步」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn