使用MySqli进行多次查询

时间:2013-03-22 13:18:39

标签: php mysqli

我正在使用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存储结果?

1 个答案:

答案 0 :(得分:1)

您需要将获取的结果存储到变量中,然后才能再次使用它们。

因此

$sql->bind_result($id, $number, $status, $category, $pbx);
while ($sql->fetch()) {
  $sql->store_result();

在php.net上阅读有关store_result()的更多信息。