$str = 'BEGIN This is a "quote" test. \'Single\' END';
echo $str . "\n";
echo mysql_real_escape_string($str);
// Outputs:
BEGIN This is a "quote" test. 'Single' END
BEGIN This is a \"quote\" test. \'Single\' END
Exécution de PHP 5.3.2 sur CentOS. Autant que je me souvienne, mysql_real_escape_string()
n'échappera que des guillemets simples pour éviter les injections SQL. Les guillemets n'ont rien à voir avec ça, car "
ne démarre pas ou ne termine pas un littéral de chaîne dans MySQL!Aujourd'hui, mysql_real_escape_string() échappe les guillemets simples et les guillemets
Cela provoque l'insertion de barres obliques inverses dans les données! Quelque chose que je ne veux clairement pas.
Qu'est-ce qui a changé récemment? Une version PHP mise à jour? Autre chose? Il ne commencera pas juste à le faire sans cause? Est-ce qu'un paramètre dans php.ini a été modifié? –
'mysql_real_escape_string' envoie la chaîne au serveur MySQL pour qu'il échappe aux données, puis renvoie ce qu'il vous renvoie. Aussi, MySQL dans son mode par défaut accepte à la fois '' '' et '' 'comme des délimiteurs de chaînes – Powerlord