sql >> Base de Datos >  >> RDS >> Mysql

Problema de enlace de parámetros Mysqli

$suquery=$dbCon->prepare("select * from Table where ? LIKE ?");

No funcionará como se esperaba. Se traducirá como:

SELECT * from table WHERE 'columnName' LIKE '%a%'

que devuelve todas las filas porque 'columnName' contiene una 'a'. 'columnName' es una cadena, no un nombre de columna real.

Su segundo intento es correcto, excepto que tiene comillas adicionales en el término. Al usar parámetros, no necesita comillas. La solución es:

$term = "%".$_POST['searchTerm']."%";
$suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
$suquery->bind_param('s', $term);
$suquery->execute();