sql >> Databasteknik >  >> RDS >> Mysql

PHP:mysql v mysqli v pdo

Utformningen av mysql_query funktionen är sådan att du måste vara försiktig så att du undslipper varje bit av data som du injicerar i den, och om du missar en enda kan hela din applikation förstöras av en automatiskt verktyg för SQL-sårbarhetsexploatering .

Båda mysqli och PDO stöder platshållare som krävs för att säkerställa att dina frågor är säkra från SQL-injektionsbuggar. Anropar mysql_real_escape_string på allt är inte bara tråkigt, utan felbenäget, och det är där problemen uppstår.

mysql funktioner är en produkt av PHPs mycket tidiga dagar och är betydligt mer begränsade än de nya objektorienterade funktionerna som erbjuds av både mysqli som tillval, eller PDO genom design.

Det finns ett antal mycket goda skäl att använda ett av dessa två nya gränssnitt, men det viktigaste är att mysql_query funktion är helt enkelt för farlig för att använda i produktionskod. Med den kommer du alltid att vara ett misstag från några mycket allvarliga problem.

Det finns en anledning till att rippar av databaser fulla av lösenord och kreditkortsnummer fortsätter att dyka upp. Att ha en uppenbar SQL-injektionspunkt gör det nästan för lätt att helt ta över en webbplats.



  1. Partitionering av en databastabell i MySQL

  2. Förlorade anslutningen till MySQL-servern när jag försökte ansluta till fjärransluten MySQL-server

  3. Istället för LIKE och ~, varför bara SILKENAR fungerar när man gör regex-matchning med alternativ

  4. Hur man ställer in standardanvändarlösenordet i PostgreSQL