我这里有一种问题,我不知道如何解决它......谷歌什么也没说,这里的搜索功能也没有向我显示任何东西......
我使用此代码
$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
这怎么能"有时"起作用? 我的问题在哪里?
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之外的某个地方。