sql >> Database teknologi >  >> RDS >> Mysql

PHP:mysql v mysqli v pdo

Designet af mysql_query funktionen er sådan, at du skal være forsigtig med at undslippe hver eneste bit af data, du injicerer i den, og hvis du går glip af én, kan hele din applikation blive ødelagt af en automatisk SQL-sårbarhedsudnyttelsesværktøj .

Begge mysqli og PDO understøtter pladsholdere, som er påkrævet for at sikre, at dine forespørgsler er sikre mod SQL-injektionsfejl. Kalder mysql_real_escape_string på alt er ikke kun kedeligt, men fejltilbøjeligt, og det er der, problemerne opstår.

mysql funktioner er et produkt af de tidlige dage med PHP og er væsentligt mere begrænsede end de nye objektorienterede funktioner, der tilbydes af både mysqli som en mulighed, eller PDO ved design.

Der er en række meget gode grunde til at bruge en af ​​disse to nye grænseflader, men den vigtigste er, at mysql_query funktion er simpelthen for farlig til at bruge i produktionskode. Med det vil du altid være en fejl væk fra nogle meget alvorlige problemer.

Der er en grund til, at rips af databaser fyldt med adgangskoder og kreditkortnumre bliver ved med at dukke op. At have et åbenlyst SQL-injektionspunkt gør det næsten for nemt at overtage et websted fuldstændigt.



  1. Hjælp med SQL-forespørgsel for at finde næste ledige dato for et reservationssystem

  2. Hvordan sammenkædes kolonner med Laravel 4 Eloquent?

  3. SQL 1064 Syntaksfejl ved brug af en JDBC-forberedt sætning

  4. MySQL:returner opdaterede rækker