Maison > base de données > tutoriel mysql > Comment puis-je insérer en toute sécurité des chaînes avec des guillemets simples dans MySQL à l'aide de PHP ?

Comment puis-je insérer en toute sécurité des chaînes avec des guillemets simples dans MySQL à l'aide de PHP ?

Linda Hamilton
Libérer: 2024-11-30 15:59:12
original
647 Les gens l'ont consulté

How Can I Safely Insert Strings with Single Quotes into MySQL Using PHP?

Échapper aux guillemets simples en PHP pour les insertions MySQL

L'insertion de données dans une base de données MySQL implique souvent la gestion de chaînes contenant des caractères spéciaux. Traiter les guillemets simples peut être particulièrement délicat.

Le problème

Un scénario a été décrit dans lequel deux instructions SQL étaient utilisées pour insérer et traiter les données d'un formulaire. La première instruction, utilisée pour insérer des données dans la base de données, a fonctionné sans problème. Cependant, la deuxième instruction, qui récupérait les données et déclenchait l'envoi d'un e-mail, échouait avec une erreur MySQL lorsque le nom contenait un guillemet simple (par exemple, "O'Brien").

La solution

La solution réside dans l'échappement des chaînes insérées dans la base de données. PHP fournit la fonction mysql_real_escape_string() à cet effet. Il remplace les caractères comme les guillemets simples par leurs équivalents échappés, évitant ainsi les erreurs et la corruption des données.

Pourquoi ce comportement différent ?

La raison du comportement différent entre les deux instructions est probablement dû à l'utilisation de magic_quotes_gpc. Cette configuration PHP échappe automatiquement aux chaînes collectées à partir de $_GET, $_POST et $_COOKIES. Dans la première instruction, les données ont été capturées directement à partir du formulaire et cet échappement automatique a été appliqué.

Cependant, lorsque les données ont été récupérées et insérées dans la deuxième instruction, elles n'ont plus été échappées. En conséquence, le guillemet simple dans le nom a provoqué l'erreur MySQL. En utilisant mysql_real_escape_string(), les deux chaînes peuvent être correctement échappées, garantissant ainsi que les caractères spéciaux sont traités correctement et que l'intégrité des données est maintenue.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal