我正在使用PHP / MySqli进行查询:
$sql = $mysqli->prepare("SELECT * FROM rooms
WHERE 1
LIMIT 0, 30 ");
$result = "['Number', 'Status', 'Category', 'Pbx Number', 'Price for today'],";
$sql->execute();
$sql->bind_result($id, $number, $status, $category, $pbx);
while ($sql->fetch()) {
$result .= " ['$number', '$status', '$category', '$pbx'," . priceForRoom($mysqli, $number, time()) . "],";
}
$sql->free_result();
return ($result);
一切正常,只要priceForRoom()
不需要连接到mysqli db来返回值。但是,只要我实现priceForRoom()
并使用mysqli,我就会收到此错误:
Commands out of sync; you can't run this command now
很多人都遇到了同样的错误,但我仍然不明白如何解决这个问题。我不想将结果存储在数组中,如何在不进行程序化的情况下使用mysqli_store_result
?我想保持我的代码对象:我应该在哪里询问mysqli存储结果?
答案 0 :(得分:1)
您需要将获取的结果存储到变量中,然后才能再次使用它们。
因此
$sql->bind_result($id, $number, $status, $category, $pbx);
while ($sql->fetch()) {
$sql->store_result();
在php.net上阅读有关store_result()
的更多信息。