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
$my_conexion = new PDO("mysql:host=".$mysql_host.";dbname=".$mysql_bd, $mysql_user, $mysql_password); $my_busqueda = "a"; $sql =" SELECT * FROM my_tabla WHERE my_columna REGEXP '[[:<:]]".$my_busqueda."'=1 "; $my_consulta = $my_conexion->prepare($sql); $my_consulta->execute(); 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
$my_busqueda = "a"; $sql =" SELECT * FROM my_tabla WHERE my_columna REGEXP '[[:<:]]:my_busqueda'=1 "; $my_consulta = $my_conexion->prepare($sql); $my_consulta->bindParam(":my_busqueda", $my_busqueda, PDO::PARAM_STR); $my_consulta->execute(); 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