Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвам PHP низ в mySQL LIKE заявка?

Имате грешен синтаксис; няма нужда да се поставя точка в низ с двойни кавички. Вместо това трябва да е по-скоро като

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

Можете да потвърдите това, като разпечатате низа, за да видите, че се оказва идентичен с първия случай.

Разбира се, че не е добра идея просто да инжектирате променливи в низа на заявката по този начин поради опасността от SQL инжекция. Най-малкото трябва ръчно да избягвате съдържанието на променливата с mysql_real_escape_string , което би го накарало да изглежда може би така:

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

Имайте предвид, че вътре в първия аргумент на sprintf знакът за процент трябва да се удвои, за да се появи веднъж в резултата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Умножение на данни от MySQL ред

  2. Обработка на сложни клаузи WHERE с PHP Query Builder

  3. Избиране на всички полета с изключение само на едно поле в mysql

  4. .NET Core 2.0 с MySQL:Посоченият ключ беше твърде дълъг; максималната дължина на ключа е 3072 байта

  5. MySQL GROUP BY...HVING различни стойности едно и също поле