簡體   English   中英

mysqli-> query(); 有時工作

[英]mysqli->query(); works sometimes

我在這里有一種問題,我不知道該怎么解決...谷歌什么也沒說,這里的搜索功能沒有給我顯示任何東西...

我用這個代碼

$GAME_DB = new mysqli($__CONFIG['MySQL']['HOST'], $__CONFIG['MySQL']['USER'], $__CONFIG['MySQL']['PASS'], $__CONFIG['MySQL']['DB']['GAME']);
if($GAME_DB->connect_errno) { echo $GAME_DB->connect_error; exit; }

$VILLAGE_DATA['villageID'] = $mysqli->real_escape_string($VILLAGE_DATA['villageID']);
$query = "SELECT name, level, time FROM actions WHERE type='build' AND villageID='".$VILLAGE_DATA['villageID']."'";
if($result = $GAME_DB->query($query))
    {
    // table header
    while($row = $result->fetch_row())
        {
        // some rows in here
        }
    // table footer
    }

該查詢中沒有任何語法錯誤,結果在那里! 有時查詢成功,並且我看到了我的表,但是有時(例如:當我重新加載時),我收到錯誤消息Commands out of sync; you can't run this command now Commands out of sync; you can't run this command now

這怎么可能“有時”工作? 我的問題在哪里?

http://dev.mysql.com/doc/refman/5.6/zh-CN/commands-out-of-sync.html

如果命令不同步; 您現在無法在客戶端代碼中運行此命令,您以錯誤的順序調用了客戶端函數。

例如,如果您使用的是mysql_use_result()並嘗試執行新查詢,然后再調用mysql_free_result(),則可能發生這種情況。 如果您嘗試執行兩個返回數據的查詢,而沒有在兩者之間調用mysql_use_result()或mysql_store_result(),也會發生這種情況。

但是從您發布的代碼中我看不到這種情況如何發生。 可能是代碼數量超出了您所發布的代碼,並且發生了亂序,或者您的MySQL連接在PHP之外的某個地方被不正確地建立/合並/持久化了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM