¿Qué pasa con mysqli :: get_result?

Tengo el siguiente código:

$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); 

Y obtengo un error marcado arriba. ¿Qué he hecho mal?

EDITAR:

cambiado fecth_array () a fetch_array ()

Como han dicho otros, solo está disponible en el borde de PHP. Podrías hacer algo como esto ( respuesta a una pregunta similar ):

 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); 

O use mysqli :: query si tiene una consulta simple sin parámetros, no la use con sentencias SQL generadas dinámicamente .

Como se menciona en la documentación de php mysqli_stmt :: get_result , este método es compatible desde PHP 5.3.0.

Y se afirma en la sección de notas del usuario que:

Este método requiere el controlador mysqlnd. De lo contrario, obtendrá este error: llamada al método indefinido mysqli_stmt :: get_result ()

Probablemente estés utilizando la versión anterior de PHP que no admite get_result () como se indica en la página de manual

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

La página del manual no proporciona ninguna información clara sobre qué versión mínima de PHP se necesita para que get_result() funcione:

(No hay información de versión disponible, solo puede estar en SVN)

No conozco los antecedentes de esto, pero puede que simplemente no esté disponible en su versión de PHP.

Podría usar fetch() lugar.

Supongo que es la línea de abajo que, cambio:

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

a:

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

compruebe que su controlador PHP mysql nativo está habilitado. get-> result () solo funciona cuando el controlador nativo mysql está habilitado. http://www.php.net/manual/en/mysqli-stmt.get-result.php