mysqli->查询();有时工作

时间:2014-04-03 21:01:24

标签: php sql mysqli

我在这里遇到了一些问题而且我不知道如何解决这个问题...谷歌没有说什么,这里的搜索功能并没有向我展示任何东西......

我使用此代码

$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

这怎么可以正常工作"有时"?我的问题在哪里?

1 个答案:

答案 0 :(得分:0)

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

  

如果你的命令不同步;你现在无法运行此命令   您的客户端代码,您以错误的顺序调用客户端函数。

     

例如,如果您使用的是mysql_use_result()和,则会发生这种情况   尝试在调用mysql_free_result()之前执行新查询。   如果您尝试执行两个返回数据的查询,也会发生这种情况   无需在中间调用mysql_use_result()或mysql_store_result()。

但是从您发布的代码中我看不出这是怎么发生的。要么有比你发布的更多的代码,而且有些事情发生在乱序,或者你的MySQL连接在PHP之外的某个地方被错误地建立/汇集/持久化。