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

търсене на множество ключови думи с php и mysql (където X харесва)

За да търсите динамично всички ключови думи, можете да използвате функцията за експлодиране, за да разделите всички ключови думи;

$queried = mysql_real_escape_string($_POST['query']); // always escape

$keys = explode(" ",$queried);

$sql = "SELECT * FROM links WHERE name LIKE '%$queried%' ";

foreach($keys as $k){
    $sql .= " OR name LIKE '%$k%' ";
}

$result = mysql_query($sql);

Забележка 1: Винаги избягвайте въвеждането на потребителя, преди да го използвате в заявката си.

Забележка 2: mysql_* функциите са отхвърлени, използвайте Mysqli или PDO като алтернатива

Актуализация 2018 г. – Забележка 3: Не забравяйте да проверите дължината на $queried променлива и задайте ограничение. В противен случай потребителят може да въведе различен голям низ и да срине вашата база данни.



  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. Колона, изчислена от друга колона?

  3. Golang, mysql:Грешка 1040:Твърде много връзки

  4. Docker Laravel Mysql:не можа да намери драйвер

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