Я на самом деле только что понял это несколько дней назад.Переход на MySQLi не является тривиальным, но мы покажем вам цикл запросов для подготовленных операторов.
$db = new mysqli(...)
$statement = $db->prepare('SELECT count(*) as [hitchhikers] FROM `T_Users` WHERE `id` > ? AND `signin` like ?');
$statement->bind_param("ss", 42, '%adams');
if ($statement->execute())
{
$statement->store_result();
$statement->bind_result($hitchhikers);
$statement->fetch();
// do something with hitchhikers here
}
else
{
// there was a problem with the execution, check $db->error
}
$statement->close();
$db->next_result();
Все здесь работает подобно формату без oo, заменяя -> на _ и передавая возвращаемое значение в новую функцию, но этот процесс в значительной степени соответствует тому, что вы должны делать с каждымиз этих заявлений.Вы также можете абстрагироваться от него с помощью класса-оболочки mysqli.
После вызова $db->next_result()
вы можете повторить процесс еще раз.Это изменение связано с тем, как MySQL-соединение и результаты обрабатываются с помощью MySQLi.Конечно, вы можете полностью избежать этой проблемы, переключившись обратно на запросы и ресурсы mysql_.
Специально для multi_query ваши запросы разделяются точкой с запятой в одной строке.В приведенном вами примере показано, как обрабатывать результаты.
MySQLi Book @ PHP.net