Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment utiliser la chaîne PHP dans la requête mySQL LIKE ?

Vous avez la mauvaise syntaxe ; il n'est pas nécessaire de placer un point à l'intérieur d'une chaîne entre guillemets doubles. Au lieu de cela, cela devrait ressembler davantage à

$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");

Vous pouvez le confirmer en imprimant la chaîne pour voir qu'elle s'avère identique au premier cas.

Bien sûr, ce n'est pas une bonne idée pour simplement injecter des variables dans la chaîne de requête comme celle-ci en raison du danger d'injection SQL. À tout le moins, vous devriez échapper manuellement le contenu de la variable avec mysql_real_escape_string , ce qui le ferait ressembler peut-être à ceci :

$sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
               mysql_real_escape_string($prefix));
$query = mysql_query($sql);

Notez qu'à l'intérieur du premier argument de sprintf le signe pourcentage doit être doublé pour finir par apparaître une fois dans le résultat.