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

mysql_real_escape_string VS addlashes

Quello che citi è probabilmente dal documento, ma per quanto ne so non è necessariamente vero.

addslashes aggiunge barre ai personaggi che sono comunemente inquietanti. mysql_real_escape_string sfugge a tutto ciò di cui MySQL ha bisogno per essere sottoposto a escape. Questo può essere più o meno caratteri di quello che addslashes si prende cura di.

Inoltre, mysql_real_escape_string non aggiungerà necessariamente barre per scappare. Anche se penso che funzioni se lo fai in questo modo, le versioni recenti di MySQL evitano le virgolette mettendone due insieme invece di mettere una barra prima di esse.

Credo che dovresti sempre usare la funzione di escape del tuo fornitore di dati invece di addslashes , perché addslashes può fare troppo o non abbastanza lavoro per lo scopo in cui lo usi. D'altra parte, mysql_real_escape_string sa cosa fare per preparare una stringa per incorporarla in una query. Anche se le specifiche cambiano su come sfuggire alle cose e improvvisamente non sono più le barre inverse che dovresti usare, il tuo codice funzionerà comunque perché mysql_real_escape_string ne sarà a conoscenza.