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

PHP:mysql v mysqli v pdo

Návrh mysql_query funkce je taková, že musíte být opatrní, abyste unikli každému kousku dat, který do něj vkládáte, a pokud vynecháte byť jen jedno, může být celá vaše aplikace zničena automatický nástroj pro zneužívání zranitelnosti SQL .

Oba mysqli a zástupné symboly podpory PDO, které jsou povinné abyste zajistili, že vaše dotazy budou v bezpečí před chybami SQL injection. Volání mysql_real_escape_string ve všem je nejen zdlouhavé, ale také náchylné k chybám, a to je místo, kde vznikají problémy.

mysql funkce jsou produktem velmi raných dnů PHP a jsou výrazně omezenější než nové objektově orientované funkce nabízené oběma mysqli jako možnost nebo CHOP podle návrhu.

Existuje řada velmi dobrých důvodů, proč používat jedno z těchto dvou nových rozhraní, ale nejdůležitější je, že mysql_query Tato funkce je prostě příliš nebezpečná pro použití v produkčním kódu. S ním budete vždy jednu chybu od velmi vážných problémů.

Existuje důvod, proč se neustále objevují trhliny v databázích plných hesel a čísel kreditních karet. Díky jasnému bodu vložení SQL je téměř příliš snadné zcela převzít web.



  1. Proč se výsledky z dotazu SQL nevracejí v očekávaném pořadí?

  2. Jak najdu znaky Unicode/non-ASCII v poli NTEXT v tabulce SQL Server 2005?

  3. pořadí provedení ve webovém prostředí

  4. Referenční hodnota sériového sloupce v jiném sloupci při stejném INSERT