Что случилось с mysqli :: get_result?

У меня есть следующий код:

$postId = $_GET['postId']; $mysqli = new mysqli('localhost', 'username', 'database', 'name_db'); mysqli_report(MYSQLI_REPORT_ALL); $stmt = $mysqli->stmt_init(); $stmt->prepare(" SELECT * FROM posts WHERE postId = ? "); $stmt->bind_param('i', $postId); $stmt->execute(); $result = $stmt->get_result();//Call to undefined method $info = $result->fetch_array(MYSQLI_ASSOC); echo json_encode($info); 

И я получаю некоторую ошибку, отмеченную выше. Что я сделал не так?

РЕДАКТИРОВАТЬ:

изменен fecth_array () на fetch_array ()

Как заявили другие, он доступен только в случае кратковременного обновления PHP. Вы могли бы сделать что-то вроде этого ( ответ на аналогичный вопрос ):

 function bind_array($stmt, &$row) { $md = $stmt->result_metadata(); $params = array(); while($field = $md->fetch_field()) { $params[] = &$row[$field->name]; } call_user_func_array(array($stmt, 'bind_result'), $params); } // .... bind_array($stmt, $info); $stmt->fetch(); echo json_encode($info); 

Или используйте mysqli :: query, если у вас есть простой запрос без параметров – не используйте его с динамически создаваемыми SQL-операторами .

Как упоминалось в php-документации mysqli_stmt :: get_result , этот метод поддерживается с PHP 5.3.0.

И в разделе пользовательских заметок указано, что:

Для этого метода требуется драйвер mysqlnd. Othervise вы получите эту ошибку: вызов неопределенного метода mysqli_stmt :: get_result ()

Вероятно, вы используете старую версию PHP, не поддерживающую get_result (), как указано на странице руководства

 (No version information available, might only be in SVN) 

На странице руководства не содержится четкой информации о том, какая минимальная версия PHP необходима для работы get_result() :

(Информация о версии отсутствует, может быть только в SVN)

Я не знаю фона, но он может быть просто недоступен в вашей версии PHP.

Вместо этого вы можете использовать fetch() .

Я предполагаю, что это строка ниже, измените:

 $info = $result->fecth_array(MYSQLI_ASSOC); 

чтобы:

 $info = $result->fetch_array(MYSQLI_ASSOC); 

проверьте, чтобы ваш драйвер PHP mysql был включен. get-> result () работает только при включенном встроенном драйвере mysql. http://www.php.net/manual/en/mysqli-stmt.get-result.php