2013-03-22 2 views
-2

Я делаю запрос с использованием PHP/Mysqli так:Несколько запросов с 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 дб возвращать значение , Но, как только я реализую priceForRoom() и использовать MySQLi я получаю эту ошибку:

Commands out of sync; you can't run this command now 

Так много людей получили ту же ошибку, но я до сих пор не понимаю, как я могу это исправить. Я не хочу хранить результаты в массиве, как я могу использовать mysqli_store_result без выполнения процедурного стиля? Я хотел бы сохранить объектно-ориентированный объект кода: где я должен попросить mysqli сохранить результат?

+0

Что такое 'priceForRoom()'? –

+0

2 downvotes и никто, кто тратит время, чтобы объяснить им? – Saturnix

ответ

1

Вам нужно сохранить результаты, полученные с помощью переменных, прежде чем вы сможете их использовать снова.

Следовательно

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

Читайте подробнее о store_result() на php.net.

+1

"PHP Неустранимая ошибка: вызов неопределенного метода mysqli_stmt :: store_results()" – Saturnix

+1

@Saturnix О, извините. Это 'store_result', а не' results'. – hjpotter92

+0

yep, я собирался отредактировать ваш ответ :) Я пытаюсь посмотреть, работает ли это ... – Saturnix

Смежные вопросы