2011-04-16 18 views
5

¿Cómo puedo hacer lo siguiente en la declaración de preparación de mysqli? Gracias.mysql_fetch_assoc en mysqli?

$result = mysql_query($sql); 
$data = mysql_fetch_assoc($result); 
return $data: 
+0

P. S. elige tu respuesta! :) – Rihards

Respuesta

2

Es necesario utilizar la versión MySQLi de las funciones:

$result = mysqli_query($sql); 
$data = mysqli_fetch_assoc($result); 
return $data; 

Eso debería hacerlo, también puede ser que desee echar un vistazo a:

+2

acabo de probarlo, y funciona. @ downvoter: si su crítica es que esta solución no es "limpia" (después de todo, la versión orientada a objetos en la otra respuesta es "preferida"), dígalo en un comentario. De lo contrario, la gente podría tener la impresión de que la respuesta aquí es incorrecta, lo que no es cierto. – mathheadinclouds

+1

Gracias, @mathheadinclouds. Solo corregí el código de OP, por lo que no tendría que pasar de aprender sobre mysqli a aprender sobre OOP. – alizahid

5

Eso es bastante simple después de haber creado la conexión a mysql en alguna parte:

<?php 
// create the connection to mysql. 
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db'); 
?> 

La referencia al objeto mysqli cuando se necesita hacer una consulta o hacer otra cosa.

<?php 
// get the result object. 
$result = $mysqli->query($sql); 
// fetch the result row. 
$data = $result->fetch_assoc(); 

return $data; 
?> 

entonces en algún momento (si tiene una clase, se puede escribir un destructor) que debe cerrar la conexión a MySQL si no lo necesitará más.

<?php 
$mysqli->kill($mysqli->thread_id); 
$mysqli->close(); 
?> 

Puede hacer mucho más con el objeto resultante que tenga. Así leer más sobre el MySQLi_Result aquí: