sql >> Databáze >  >> RDS >> Mysql

Problém s vazbou parametru Mysqli

$suquery=$dbCon->prepare("select * from Table where ? LIKE ?");

Nebude fungovat podle očekávání. Bude přeloženo jako:

SELECT * from table WHERE 'columnName' LIKE '%a%'

který vrátí všechny řádky, protože 'columnName' obsahuje 'a'. 'columnName' je řetězec, nikoli skutečný název sloupce.

Váš druhý pokus je správný, až na to, že v termínu máte navíc uvozovky. Při použití parametrů nepotřebujete žádné uvozovky. Řešením je:

$term = "%".$_POST['searchTerm']."%";
$suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
$suquery->bind_param('s', $term);
$suquery->execute();


  1. Jak zastavit funkci posouvání, jakmile MySql načte všechna data

  2. SQL DML:Nesprávná hodnota data (MySQL)

  3. Vraťte se k tradiční replikaci z GTID

  4. Jak předat parametr dotazu mssql v uzlu js