Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] resultado inesperado en consulta pdo

Estas en el tema de resultado inesperado en consulta pdo en el foro de PHP en Foros del Web. Hola quiero hacer una busqueda con un array php en pdo pero siempre me da 0 resultados, pongo el ejemplo. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver ...
  #1 (permalink)  
Antiguo 17/12/2014, 07:56
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
resultado inesperado en consulta pdo

Hola quiero hacer una busqueda con un array php en pdo pero siempre me da 0 resultados, pongo el ejemplo.
Código PHP:
Ver original
  1. $array=array("coche","casa");
  2.  
  3. $sql="SELECT COUNT(id) FROM tabla WHERE MATCH(propiedad) AGAINST('?,?', IN BOOLEAN MODE)";
  4. $pdo->db->prepare($sql);
  5. $pdo->bindParam(1,$array[0]);
  6. $pdo->bindParam(1,$array[1]);
  7. $pdo->execute();
  8. echo $pdo->fetchColumn();

El resultado siempre es 0 pero deberia tener dos resultados si creo la consulta directamente me funciona bien dando el resultado correcto(2).


Código PHP:
Ver original
  1. $sql="SELECT COUNT(id) FROM tabla WHERE MATCH(propiedad) AGAINST('coche casa', IN BOOLEAN MODE)";

Alguien sabe donde puede estar la confusion?
saludos
  #2 (permalink)  
Antiguo 17/12/2014, 08:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: resultado inesperado en consulta pdo

La confusión, es que estás haciendo bindParam() dos veces, para la misma posición y diferentes valores al mismo tiempo: totalmente ilógico.

En todo caso lo que debes hacer primero es convertir el array a una cadena usando join(), y con dicho valor hacer el bindParam() para que la consulta resulte como en tu segundo ejemplo.

Código PHP:
Ver original
  1. echo join(' ', array('x', 'y')); // x y
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/12/2014, 08:05
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: resultado inesperado en consulta pdo

Hola perdona pateketrueke fue un error de escritura, voy a probar lo de usar join haber si funciona, gracias y saludos.
  #4 (permalink)  
Antiguo 17/12/2014, 08:14
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: resultado inesperado en consulta pdo

No me esta funcionando no se que estoy haciendo mal cambie el bindParam por uno unico asi:

Código PHP:
Ver original
  1. $cadena=join(",",$array);
  2. $sql="SELECT COUNT(id) FROM tabla WHERE MATCH(propiedad) AGAINST('?', IN BOOLEAN MODE)";
  3. $pdo->bindParam(1,$cadena);

que me esta pasando?saludos

Última edición por azaz; 17/12/2014 a las 08:21
  #5 (permalink)  
Antiguo 17/12/2014, 08:23
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: resultado inesperado en consulta pdo

OK, funciono correctamente sobraban las comillas simpres de la sql:

Código PHP:
Ver original
  1. $sql="SELECT COUNT(id) FROM tabla WHERE MATCH(propiedad) AGAINST(?, IN BOOLEAN MODE)";

Muchas gracias nuevamente, saludos

Etiquetas: pdo, resultado, select, sql, tabla
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 11:06.