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

Připravené příkazy PDO/MYSQL neuvádějí znaky?

Připravená prohlášení nic neuniknou. Když připravíte příkaz, váš dotaz se předkompiluje, takže potřebuje pouze zástupné symboly ( ? ), které se má vyplnit. Protože neexistuje způsob, jak změnit SQL předkompilovaného dotazu, není potřeba žádné escapování.

Chcete-li tento problém vyřešit, escapujte % a _ ručně.

Přidáno:

Trochu zdravého rozumu:Ve vašem případě, když uživatel zadá % do vyhledávacího pole, vaše $search proměnná obsahuje řetězec %%% . Jak by MySQL věděl, které % měla by uniknout a kterou by měla nechat na pokoji?



  1. alternativa k mysql_field_name v mysqli

  2. StaleObjectStateException u vysokofrekvenčních aktualizací

  3. přístup k aliasům sloupců v klauzuli where v postgresql

  4. Jak automaticky spustím skript nebo rutinu MySQL po dopředném inženýrství z modelu