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

mysql_real_escape_string VS addlashes

To, co citujete, je pravděpodobně z dokumentu, ale pokud vím, nemusí to být nutně pravda.

addslashes přidává lomítka ke znakům, které jsou běžně rušivé. mysql_real_escape_string unikne všemu, co MySQL potřebuje uniknout. Může to být více nebo méně znaků, než kolik addslashes se stará.

Také mysql_real_escape_string nemusí nutně přidávat lomítka k úniku. I když si myslím, že to funguje, když to uděláte tímto způsobem, poslední verze MySQL unikají uvozovkám tak, že je dají dohromady dvě, místo abyste před ně dali lomítko.

Domnívám se, že byste měli vždy používat funkci escape svého poskytovatele dat namísto addslashes , protože addslashes může buď udělat příliš mnoho nebo málo práce pro účel, pro který jej používáte. Na druhou stranu mysql_real_escape_string co udělat pro přípravu řetězce pro jeho vložení do dotazu. I když se změní specifikace o tom, jak uniknout věci a najednou už to nejsou zpětná lomítka, která byste měli používat, váš kód bude stále fungovat, protože mysql_real_escape_string bude si toho vědom.



  1. Místní dočasná tabulka v Oracle 10 (pro rozsah uložené procedury)

  2. Jak najít položku seznamu na zadané pozici v SQL Server

  3. Jak upgradovat MariaDB 5.5 na MariaDB 10.1 na systémech CentOS/RHEL 7 a Debian

  4. Funkce NULLIF() v Oracle