sql >> Databasteknik >  >> RDS >> Mysql

sök efter flera nyckelord med php och mysql (där X gillar)

För att dynamiskt söka i alla sökord kan du använda exploderingsfunktionen för att separera alla sökord;

$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);

Obs 1: Undvik alltid användarinmatning innan du använder det i din fråga.

Obs 2: mysql_* funktioner är utfasade, använd Mysqli eller PDO som ett alternativ

Uppdatering 2018 – Anmärkning 3: Glöm inte att kontrollera längden på $queried variabel och sätt en gräns. Annars kan användaren mata in en varierande stor sträng och krascha din databas.



  1. Spara användarmodell i viloläge till Postgres

  2. mysqldump-problem med återställningsfel:'Vänligen KASSA tabellutrymmet före IMPORT'

  3. Använder Dapper med Oracle lagrade procedurer som returnerar markörer

  4. ASIN() Exempel i SQL Server