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

Hvordan bruger man PHP-streng i mySQL LIKE-forespørgsel?

Du har forkert syntaks; der er ingen grund til at placere et punktum i en streng med dobbelte citater. I stedet skulle det være mere som

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

Du kan bekræfte dette ved at udskrive strengen for at se, at den bliver identisk med den første sag.

Det er selvfølgelig ikke en god idé simpelthen at injicere variabler i forespørgselsstrengen som denne på grund af faren for SQL-injektion. I det mindste bør du manuelt undslippe indholdet af variablen med mysql_real_escape_string , hvilket ville få det til at se sådan ud:

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

Bemærk, at inde i det første argument af sprintf procenttegnet skal fordobles for at ende med at blive vist én gang i resultatet.



  1. Måling af PostgreSQL Checkpoint Statistik

  2. Generer n rækker af NULL i PostgreSQL

  3. Hvad er den tilsvarende PostgreSQL-syntaks til Oracles CONNECT BY ... START WITH?

  4. Hvordan RTRIM_ORACLE() virker i MariaDB