sql >> Databasteknik >  >> RDS >> Mysql

mysql_real_escape_string VS addslashes

Det du citerar är förmodligen från läkaren, men så vitt jag vet är det inte nödvändigtvis sant.

addslashes lägger till snedstreck till tecken som ofta är störande. mysql_real_escape_string undkommer allt som MySQL behöver för att undkomma. Detta kan vara fler eller färre tecken än addslashes tar hand om.

Även mysql_real_escape_string kommer inte nödvändigtvis att lägga till snedstreck för att undvika. Även om jag tror att det fungerar om du gör det på det sättet, undviker de senaste versionerna av MySQL citattecken genom att sätta ihop två av dem istället för att sätta ett snedstreck före det.

Jag tror att du alltid ska använda din dataleverantörs escape-funktion istället för addslashes , eftersom addslashes kan antingen göra för mycket eller för lite arbete för det syfte du använder den. Å andra sidan, mysql_real_escape_string vet vad man ska göra för att förbereda en sträng för att bädda in den i en fråga. Även om specifikationerna ändras för hur man undslipper saker och det plötsligt inte är omvända snedstreck som du ska använda längre, kommer din kod fortfarande att fungera eftersom mysql_real_escape_string kommer att vara medveten om det.



  1. ange korrekt användarnamn och lösenord, hämta ORA-01017:ogiltigt användarnamn/lösenord; inloggning nekad

  2. Möjligt att skapa Oracle Database-objekttyper inuti PL/SQL?

  3. Returnera alla möjliga kombinationer av värden på kolumner i SQL

  4. SQL Server (TSQL) - Är det möjligt att EXEC-satser parallellt?