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

Mysql + php se speciálními znaky jako '(Apostrof) a (Uvozovka)

Váš řetězec SQL bude:

INSERT INTO `table` (`row1`) VALUES ('google's site')

Což není platné tvrzení. Jak napsala Nanne, unikněte řetězci alespoň pomocí mysql_real_escape_string :http ://php.net/manual/en/function.mysql-real-escape-string.php

A přečtěte si o vkládání sqlhttp://en.wikipedia.org/wiki/SQL_injection

Zamyslete se trochu:pokud někdo zveřejní toto:$_POST['text'] s hodnotou:');delete from table;....

Můžete se rozloučit se svými daty :)

Vždy filtrovat/unikat vstup!

EDIT:Od PHP 5.5.0 jsou mysql_real_escape_string a rozšíření mysql zastaralé. Místo toho použijte rozšíření mysqli a funkci mysqli::escape_string



  1. Jak používat připravené výpisy s Postgres

  2. rozdíl mezi plánem vysvětlit a plánem provedení

  3. Argumenty příkazového řádku PSQL ve skriptu DO

  4. Pomocí setDate v PreparedStatement