sql >> Database >  >> RDS >> Mysql

Moet ik mysql_real_escape_string gebruiken als ik parameters bind?

Nee, u hoeft niet zelf te ontsnappen aan de waarde (d.w.z. nee, u hoeft mysqli_real_escape_string niet aan te roepen ) , wanneer u voorbereide instructies gebruikt:de DB-engine zal dat zelf doen.

(Eigenlijk, als je mysql_real_escape_string belt en als je gebonden parameters gebruikt, zouden je strings twee keer ontsnappen -- wat niet geweldig zou zijn:je zou overal escapetekens krijgen...)


Als een kanttekening:uw waarden worden doorgegeven als gehele getallen (zoals aangegeven door de 'ii' ) , zodat u mysql_real_escape_string . niet hoeft aan te roepen , zelfs als u geen voorbereide instructies gebruikte:zoals de naam aangeeft, wordt deze functie gebruikt om te ontsnappen aan... tekenreeksen.

Voor gehele getallen gebruik ik over het algemeen gewoon intval om ervoor te zorgen dat de gegevens die ik in mijn SQL-query's injecteer echt gehele getallen zijn.

(Maar aangezien u voorbereide zoekopdrachten gebruikt, hoeft u dat soort ontsnappingen niet zelf te doen)



  1. String splitsen op positie van scheidingsteken met behulp van Oracle SQL

  2. Drop vs Truncate in SQL

  3. Voltooi het proces om de tabel van de ene database naar de andere te kopiëren (export-import) in SQL Server

  4. Hetzelfde schema gebruiken voor meerdere SQL Server Agent-taken (T-SQL)