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

Escape di virgolette singole in PHP durante l'inserimento in MySQL

Dovresti eseguire l'escape di ciascuna di queste stringhe (in entrambi i frammenti) con mysql_real_escape_string() .

http://us3.php.net/mysql-real-escape-string

Il motivo per cui le tue due query si stanno comportando in modo diverso è probabilmente perché hai magic_quotes_gpc acceso (che dovresti sapere è una cattiva idea). Ciò significa che le stringhe raccolte da $_GET, $_POST e $_COOKIES sono state salvate per te (ad esempio, "O'Brien" -> "O\'Brien" ).

Una volta archiviati i dati e successivamente recuperati di nuovo, la stringa che si recupera dal database non essere automaticamente evaso per te. Ritroverai "O'Brien" . Quindi, dovrai passarlo attraverso mysql_real_escape_string() .