Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como usar a string PHP na consulta mySQL LIKE?


Você tem a sintaxe errada; não há necessidade de colocar um ponto dentro de uma string com aspas duplas. Em vez disso, deveria ser mais como
$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");

Você pode confirmar isso imprimindo a string para ver se ela fica idêntica ao primeiro caso.

Claro que não é uma boa ideia para simplesmente injetar variáveis ​​na string de consulta assim por causa do perigo da injeção de SQL. No mínimo, você deve escapar manualmente o conteúdo da variável com mysql_real_escape_string , o que tornaria talvez assim:
$sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
               mysql_real_escape_string($prefix));
$query = mysql_query($sql);

Observe que dentro do primeiro argumento de sprintf o sinal de porcentagem precisa ser dobrado para acabar aparecendo uma vez no resultado.