sql >> Databasteknik >  >> RDS >> Mysql

Hur använder man PHP-strängen i mySQL LIKE-frågan?

Du har fel syntax; det finns ingen anledning att placera en punkt i en sträng med dubbla citat. Istället borde det vara mer som

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

Du kan bekräfta detta genom att skriva ut strängen för att se att den blir identisk med det första fallet.

Naturligtvis är det ingen bra idé att helt enkelt injicera variabler i frågesträngen så här på grund av faran med SQL-injektion. Åtminstone bör du manuellt undkomma innehållet i variabeln med mysql_real_escape_string , vilket skulle få det att se ut så här:

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

Observera att inuti det första argumentet för sprintf procenttecknet måste fördubblas för att hamna en gång i resultatet.



  1. T-SQL-buggar, fallgropar och bästa praxis – fönsterfunktioner

  2. UPPDATERA eller INFOGA MySQL Python

  3. DBA:s roll i NoSQL

  4. PDO Error - PDOException' med meddelandet 'SQLSTATE[HY000]:Allmänt fel'