Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Funcionamiento mysqli

Estas en el tema de Funcionamiento mysqli en el foro de PHP en Foros del Web. Saludos. He estado mirando un poco la clase de php de mysqli y hay algunas cosas de su funcionamiento que no tengo muy claro. Con ...
  #1 (permalink)  
Antiguo 29/05/2015, 03:30
 
Fecha de Ingreso: abril-2015
Mensajes: 11
Antigüedad: 9 años
Puntos: 0
Funcionamiento mysqli

Saludos.

He estado mirando un poco la clase de php de mysqli y hay algunas cosas de su funcionamiento que no tengo muy claro.
Con mysql antes tenia un archivo php que realizaba una conexión a la base de datos ejecutaba una sentencia que le pasábamos por parámetro cerraba la conexión y nos devolvía los resultados.
En cambio con mysqli para hacer lo mismo hay que: conectar, ejecutar sentencia, meter con un bucle los resultados en un array, cerrar la conexión y devolver el array. Queda más largo que en la anterior clase al necesitar la BBDD conectada para navegar por los resultados.

¿Seria la manera correcta de funcionar, un método que nos devuelva un array de resultados, o es más recomendable tener una función por cada sentencia? En este caso tendría que abrir y cerrar la conexión en cada función.

Tengo la sensación de que hay algo del funcionamiento que no estoy entendiendo. No comprendo bien que ventajas me aporta esta clase.

Gracias.
  #2 (permalink)  
Antiguo 29/05/2015, 06:55
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años
Puntos: 3
Respuesta: Funcionamiento mysqli

No necesitas abrir y cerrar la conexión para pasar el contenido a array asociativo, si en la misma función ya estás abriendo la sesión llama a una función antes de cerrarla, ejemplo:

Código PHP:
function miFuncion () {
   
mysqli_connect(...);
   
mysqli_query($sesion"SET NAMES 'utf8'");
   
$query mysqli_query($sesion"SELECT * FROM tabla");
   
$miArray = array();
   
mysqliToArray($miArray$query);
   
mysqli_discconect();
   return 
miArray;
}

function 
mysqliToArray(&$miArray, &$query) {
  for(
$i 0$i mysqli_num_rows($query); $i ++)
    
$myArray[] = mysqli_fetch_array($query);

También tienes el siguiente método nativo: http://php.net/manual/es/mysqli-result.fetch-all.php

Código PHP:
mysqli_fetch_all(...); 
Sin embargo se implementó en PHP 5.0.3, comprueba que tu versión de PHP es igual o superior para poder utilizarla.

Un cordial saludo.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...

Etiquetas: funcionamiento, mysql, mysqli
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:10.