sql >> Database >  >> RDS >> Mysql

Hoe gebruik ik een PHP-string in een mySQL LIKE-query?

Je hebt de syntaxis verkeerd; het is niet nodig om een ​​punt in een tekenreeks met dubbele aanhalingstekens te plaatsen. In plaats daarvan zou het meer moeten zijn als

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

U kunt dit bevestigen door de tekenreeks af te drukken om te zien of deze identiek is aan het eerste geval.

Natuurlijk is het geen goed idee om eenvoudig variabelen in de queryreeks op deze manier te injecteren vanwege het gevaar van SQL-injectie. U moet op zijn minst handmatig ontsnappen aan de inhoud van de variabele met mysql_real_escape_string , waardoor het er misschien zo uitziet:

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

Merk op dat binnen het eerste argument van sprintf het procentteken moet worden verdubbeld om één keer in het resultaat te verschijnen.



  1. Gemakkelijke manier om een ​​SQL-tabel te exporteren zonder toegang tot de server of phpMyADMIN

  2. Tabelnaam parametreren in .NET/SQL?

  3. Berichtensysteem met PHP/MySQL

  4. Hoe een genest commentaarsysteem implementeren?