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

Musím použít mysql_real_escape_string, když vážím parametry?

Ne, nemusíte hodnotu sami unikat (tj. ne, nemusíte volat mysqli_real_escape_string ) , když používáte připravené příkazy:DB engine to udělá sám.

(Ve skutečnosti, pokud jste volali mysql_real_escape_string a při použití vázaných parametrů by vaše řetězce byly escapovány dvakrát – což by nebylo skvělé:skončili byste s únikovými znaky všude...)


Jako okrajová poznámka:vaše hodnoty jsou předávány jako celá čísla (jak je označeno 'ii' ) , takže byste nemuseli volat mysql_real_escape_string , i když jste nepoužívali připravené příkazy:jak název napovídá, tato funkce se používá k escapování... řetězců.

Pro celá čísla obecně používám pouze intval abych se ujistil, že data, která vkládám do svých SQL dotazů, jsou skutečně celá čísla.

(Ale vzhledem k tomu, že používáte připravené dotazy, opět nemusíte tento druh útěku dělat sami)



  1. Duplicitní záznam „0“ pro klíč „PRIMARY“

  2. Skutečné vs. pohyblivá řádová čárka vs. peníze

  3. Jak mohu vygenerovat (nebo získat) skript ddl na existující tabulce v oracle? Musím je znovu vytvořit v Hive

  4. Jak chránit aplikaci JDBC proti vkládání SQL