Mysql
 sql >> Database >  >> RDS >> Mysql

Problema di associazione dei parametri MySQL

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

Non funzionerà come previsto. Verrà tradotto come:

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

che restituisce tutte le righe perché 'columnName' contiene una 'a'. 'columnName' è una stringa, non un nome di colonna effettivo.

Il tuo secondo tentativo è corretto, tranne per il fatto che hai delle virgolette extra nel termine. Quando si utilizzano i parametri, non sono necessarie virgolette. La soluzione è:

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