Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] mysqli_fetch_array

Estas en el tema de mysqli_fetch_array en el foro de PHP en Foros del Web. estoy actualizando medianamente la manera en que me conecto a la base de datos, comenzando por mysqli ya que PDO se me hace de momento ...
  #1 (permalink)  
Antiguo 12/06/2013, 04:35
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
mysqli_fetch_array

estoy actualizando medianamente la manera en que me conecto a la base de datos, comenzando por mysqli ya que PDO se me hace de momento muy difícil.

leyendo un libro guía de php 5.3 concluí que tenía que cambiar ciertas cosas, sencillas, en la clase que utilizo para conectar.

finalmente esta me quedó de la siguiente manera

Código PHP:
Ver original
  1. class Conectar
  2.     {
  3.         public static function connect($TextoSQL)
  4.         {
  5.             $IDConexion = mysqli_connect("localhost", "root", "", "hoteles");
  6.            
  7.             /*ya no necesito mysqli_selec_db porque la base de datos sepuede
  8.             incorporar en mysqli_connect*/
  9.            
  10.             //mysqli_select_db($IDConexion , "hoteles");
  11.                        
  12.                         //mysqli_query recibe primero el idconexion y después el textosql
  13.            
  14.             $IDConsulta = mysqli_query($IDConexion , $TextoSQL);
  15.            
  16.             if ($IDConsulta == false)
  17.             {
  18.                 echo "ERROR: <br>\n";
  19.                 echo mysqli_error($IDConexion);
  20.             }
  21.             else
  22.             {
  23.                 return $IDConsulta;
  24.             }
  25.         }
  26.     }

a la hora de acceder y extraer los datos lo hago de la siguiente manera, por ejemplo para que un usuario inicie sesión

Código PHP:
Ver original
  1. class Sesion_usuario
  2.     {
  3.         private $result=array();
  4.         public function sesion($usuario, $passwd, $email)
  5.         {
  6.             $identificacion="SELECT usuario, passwd FROM usuarios where usuario='".$usuario."' , passwd='".$passwd."'";
  7.             $result_conexion= Conectar::connect($identificacion);
  8.             while($resultado=mysqli_fetch_array($result_conexion))
  9.             {
  10.                 $this->result[]=$resultado;
  11.             }
  12.             return $this->result;
  13.         }
  14.         public static function borrar_sesion()
  15.         {
  16.             unset($_SESSION['usuario']);
  17.         }
  18.        
  19.     }

según el libro y según la documentación oficial mysqli_fetch_array se comporta igual que el viejo mysql_fetch_array.

pero al iniciar sesión (con usuario: q y password: q) me devuelve el siguiente error que no comprendo

Cita:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' passwd='q'' at line 1
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\xampp\web\poo\clases.php on line 91
¿alguien me puede ayudar?

gracias! :D
  #2 (permalink)  
Antiguo 12/06/2013, 04:58
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años
Puntos: 17
Respuesta: mysqli_fetch_array

No puede poner

Código SQL:
Ver original
  1. WHERE usuario='".$usuario."' , passwd='".$passwd."'

Esa coma ahí no puede ir en ningún momento, si de verdad te lo pone así en el libro, tendrás que ir buscándote otro, la forma correcta en este caso sería con AND

Código SQL:
Ver original
  1. WHERE usuario='".$usuario."' AND passwd='".$passwd."'

Saludos.
  #3 (permalink)  
Antiguo 12/06/2013, 05:11
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: mysqli_fetch_array

Cita:
Iniciado por Lobito14 Ver Mensaje
No puede poner

Código SQL:
Ver original
  1. WHERE usuario='".$usuario."' , passwd='".$passwd."'

Esa coma ahí no puede ir en ningún momento, si de verdad te lo pone así en el libro, tendrás que ir buscándote otro, la forma correcta en este caso sería con AND

Código SQL:
Ver original
  1. WHERE usuario='".$usuario."' AND passwd='".$passwd."'

Saludos.
ahhh gracias, era un simple error de sintaxis. no, en el libro no me venía esto, solo me habla de mysqli.

Etiquetas: mysql, select, sql, usuarios
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 20:09.