2010-10-27 3 views
2

Vous avez une situation étrange ici. Sur ma base de données mysql locale (v5.1.41), je suis obligé d'utiliser cette commande d'échappement si je dois gérer les syntaxes de citations des utilisateurs sans aucun problème. Cependant, je ne peux pas utiliser cette commande sur la base de données mysql de mon serveur web (v5.0.91-community). Si cette commande est utilisée sur le serveur web (apache v2.2.13), une syntaxe supplémentaire est ajoutée à la syntaxe de l'utilisateur, donc si je supprime la commande mysql_real_escape_string, les entrées avec des guillemets n'auront aucun problème à être insérées dans la base de données. Donc, je me demandais, en dehors de php, y a-t-il un paramètre dans apache (v2.2.13) ou dans mysql lui-même qui peut gérer automatiquement la syntaxe de citation comme la commande mysql_real_escape_string de PHP?Mysql_real_escape_string ... existe-t-il un autre réglage automatique où?

Nous vous remercions à l'avance

+1

Les mots n'aident pas. Mettez des exemples. –

+0

Désactiver 'magic_quotes_gpc' dans' php.ini' – pltvs

Répondre

6

Ceci est probablement dû à Magic Quotes. Disable or remove them, ils sont une fonctionnalité bien intentionnée mais aussi agaçante.

+3

Un autre paramètre PHP qui doit mourir. –

+0

@Ignacio Vazquez-Abrams: Oui. Et c'est déjà obsolète. – Gumbo

2

Cela signifie que le paramètre php magic_quotes_gpc est activé sur le serveur. Il est dépréciée, et il y a un moyen de contourner le problème - en supprimant les barres obliques au début de votre code:

<?php 
if (get_magic_quotes_gpc()) { 
    function magicQuotes_awStripslashes(&$value, $key) {$value = stripslashes($value);} 
    $gpc = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); 
    array_walk_recursive($gpc, 'magicQuotes_awStripslashes'); 
} 
+0

Il est généralement préférable de ne pas avoir PHP bousiller vos données en premier lieu. –

+0

Je suis d'accord, mais il y a des moments où vous n'avez pas accès à php.ini. – Maerlyn

0

Je vous recommandons d'utiliser filter_input pour obtenir vos données d'utilisateur, car il ne se soucie pas de magic_quotes et les requêtes paramétrées pour effectuer votre travail de base de données (voir mysqli ou PDO).

Questions connexes