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.