sql >> Database >  >> RDS >> Mysql

PHP:mysql v mysqli v pdo

Het ontwerp van de mysql_query functie is zodanig dat je voorzichtig moet zijn om te ontsnappen aan elk stukje gegevens dat je erin injecteert, en als je er ook maar één mist, kan je hele applicatie worden vernietigd door een automatisch hulpprogramma voor misbruik van SQL-kwetsbaarheid .

Beide mysqli en PDO ondersteunen tijdelijke aanduidingen die vereist zijn om ervoor te zorgen dat uw vragen veilig zijn voor SQL-injectie-bugs. Bellen mysql_real_escape_string op alles is niet alleen vervelend, maar ook foutgevoelig, en daar ontstaan ​​de problemen.

De mysql functies zijn een product van de allereerste dagen van PHP en zijn aanzienlijk beperkter dan de nieuwe objectgeoriënteerde functies die worden aangeboden door beide mysqli als optie, of BOB door ontwerp.

Er zijn een aantal zeer goede redenen om een ​​van deze twee nieuwe interfaces te gebruiken, maar de belangrijkste is dat de mysql_query functie is gewoon te gevaarlijk om in productiecode te gebruiken. Hiermee bent u altijd één fout verwijderd van een aantal zeer ernstige problemen.

Er is een reden waarom er steeds meer databases vol wachtwoorden en creditcardnummers verschijnen. Het hebben van een duidelijk SQL-injectiepunt maakt het bijna te gemakkelijk om een ​​site volledig over te nemen.



  1. Querygroep repareren met only_full_group_by

  2. Hoe Array/Table Parameter te gebruiken voor Oracle (ODP.NET 10g) via ADO.NET/C#?

  3. Retourneer het oorspronkelijke zaad van een identiteitskolom in SQL Server

  4. Kan geen verbinding maken met de Oracle-database met behulp van JDBC als het wachtwoord speciale tekens heeft