Foros del Web » Programando para Internet » PHP »

Dudas con mysqli

Estas en el tema de Dudas con mysqli en el foro de PHP en Foros del Web. Buenas, en PHP siempre estuve trabajando con el driver PDO para hacer mis consultas MySQL. Hace unos días comencé un proyecto nuevo y decidí utilizar ...
  #1 (permalink)  
Antiguo 27/08/2012, 06:17
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 7 meses
Puntos: 26
Dudas con mysqli

Buenas, en PHP siempre estuve trabajando con el driver PDO para hacer mis consultas MySQL.
Hace unos días comencé un proyecto nuevo y decidí utilizar (y de paso aprender) el driver Mysqli.
Las consultas sin parámetros las realizo sin inconvenientes, pero cuando quiero pasar parámetros no logro hacerlas funcionar.

Tengo la siguiente función, en la cual entra por parámetro una fecha con formato: Y-m-d.

Código PHP:
function getIdMenu($unaFecha,$con)
{
    
/*
     * Entra la fecha seleccionada por el usuario y devuelve
     * el id del menu correspondiente.
     */
    
    
$dt "'$unaFecha 00:00:00'";
    
$idMenu NULL;
    
    
$stmt $con->prepare("SELECT IdMenu FROM menues WHERE ? BETWEEN Desde AND Hasta");
    
$stmt->bind_param('s',$dt);
    
$stmt->execute();
    
$stmt->bind_result($idMenu);
    
    while (
$stmt->fetch()){
        echo 
$idMenu."<br/>";
        
    }
    

Pero la función no imprime nada. En qué estoy fallando?.
  #2 (permalink)  
Antiguo 27/08/2012, 06:38
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: Dudas con mysqli

En la funcion Between estas comparando la palabra Desde y Hasta como tal no son parametros, el valor que estas pasando por parametros es una fecha alli deberia reflejarse fechas o variables con ese valor.
  #3 (permalink)  
Antiguo 27/08/2012, 06:44
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 7 meses
Puntos: 26
Respuesta: Dudas con mysqli

Cita:
Iniciado por jlct Ver Mensaje
En la funcion Between estas comparando la palabra Desde y Hasta como tal no son parametros, el valor que estas pasando por parametros es una fecha alli deberia reflejarse fechas o variables con ese valor.
"Desde" y "Hasta" son los campos de la tabla (del tipo Date). Al ejecutar la consulta en PhpMyAdmin funciona a la perfección.
Esta sería la consulta compuesta:
Código SQL:
Ver original
  1. SELECT IdMenu FROM menues WHERE '2012-08-27 09:42:00' BETWEEN Desde AND Hasta

Resultado en PhpMyAdmin:
Cita:
Mostrando registros 0 - 0 ( 1 total, La consulta tardó 0.0004 seg)
  #4 (permalink)  
Antiguo 27/08/2012, 06:50
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: Dudas con mysqli

Y xq no pasas directamente el parametro en la consulta?

$stmt = $con->prepare("SELECT IdMenu FROM menues WHERE $dt BETWEEN Desde AND Hasta");

y omites esta linea

$stmt->bind_param('s',$dt);

prueba y me avisas!
  #5 (permalink)  
Antiguo 27/08/2012, 06:52
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 7 meses
Puntos: 26
Respuesta: Dudas con mysqli

Cita:
Iniciado por jlct Ver Mensaje
Y xq no pasas directamente el parametro en la consulta?

$stmt = $con->prepare("SELECT IdMenu FROM menues WHERE $dt BETWEEN Desde AND Hasta");

y omites esta linea

$stmt->bind_param('s',$dt);

prueba y me avisas!
Por lo que leí en la documentación, no debería funcionar. Pruebo y publico.
  #6 (permalink)  
Antiguo 27/08/2012, 07:05
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 7 meses
Puntos: 26
Respuesta: Dudas con mysqli

Perdón, no estaba utilizando el driver PDO. Utilizaba el obsoleto Mysql.
Voy a probar con PDO, ya que encontré una mini guía muy interesante[0].
Saludos.

[0]: http://www.mclibre.org/consultar/php...do.html#Conexi
  #7 (permalink)  
Antiguo 27/08/2012, 07:12
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: Dudas con mysqli

Gracias por compartir ese material..!
Saludos.

Etiquetas: dudas, mysql, mysqli, 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 23:21.