Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema PHP->PDO con REGEXP->MySQL

Estas en el tema de Problema PHP->PDO con REGEXP->MySQL en el foro de PHP en Foros del Web. Hola, Tengo una consulta MySQL en la cual necesito utilizar REGEXP mas preciso la expresión regular [[:<:]] delimitador de una palabra. Si hago una busqueda ...
  #1 (permalink)  
Antiguo 30/09/2014, 15:50
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
Problema PHP->PDO con REGEXP->MySQL

Hola,

Tengo una consulta MySQL en la cual necesito utilizar REGEXP mas preciso la expresión regular [[:<:]] delimitador de una palabra.

Si hago una busqueda sin pasar las variables como parámetros PDO todo va bien (pongo aqui un ejemplo probado que funciona correctamente):

Código PHP:
Ver original
  1. $my_conexion = new PDO("mysql:host=".$mysql_host.";dbname=".$mysql_bd, $mysql_user, $mysql_password);
  2. $my_busqueda = "a";
  3.  
  4. $sql ="
  5.     SELECT *
  6.     FROM my_tabla
  7.     WHERE my_columna REGEXP '[[:<:]]".$my_busqueda."'=1
  8. ";
  9.  
  10. $my_consulta = $my_conexion->prepare($sql);
  11. $my_consulta->execute();
  12. echo $my_consulta->rowCount(); //devuelve el numero correcto de filas encontradas

El problema es que quiero (por seguridad) pasar la variable $my_busqueda como parametro PDO :my_busqueda pero no funciona. El ejemplo aqui debajo:

Código PHP:
Ver original
  1. $my_busqueda = "a";
  2. $sql ="
  3.     SELECT *
  4.     FROM my_tabla
  5.     WHERE my_columna REGEXP '[[:<:]]:my_busqueda'=1
  6. ";
  7.  
  8. $my_consulta = $my_conexion->prepare($sql);
  9. $my_consulta->bindParam(":my_busqueda", $my_busqueda, PDO::PARAM_STR);
  10. $my_consulta->execute();
  11. echo $my_consulta->rowCount(); // 0 filas encontradas. con el parametro :my_busqueda no devuelve ninguna fila

Seguro algo hago mal. Pero no se que.
Cualquier ayuda se agradece.
Saludos
  #2 (permalink)  
Antiguo 30/09/2014, 16:19
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Problema PHP->PDO con REGEXP->MySQL

cuando prepara el query los : son para definir alias, no para operarlos:
Código PHP:
Ver original
  1. <?
  2. $STH = $DBH->prepare("SELECT songs ,image ,artist,album,r_year
  3.            FROM english_fm
  4.            WHERE artist REGEXP :artist
  5.            GROUP BY artist order by slno");
  6.             $STH->bindValue(":artist" , "^[$artist]", PDO::PARAM_STR);
  7. ?>
  #3 (permalink)  
Antiguo 30/09/2014, 16:33
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: Problema PHP->PDO con REGEXP->MySQL

¡Muchas gracias!
por el ejemplo y por la explicacion tambien. Esto me ha solucionado el problema.

Etiquetas: mysql, select, sql, tabla, variable
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 00:52.