2010-09-20 5 views
2

J'ai un problème très étrange, pas vraiment un problème car je l'ai corrigé mais quand même, quand j'essaye de me connecter à mysql db avec :Utilisation de guillemets doubles et de guillemets simples lors de la transmission de la chaîne comme paramètre pour fonctionner

mysql_connect("server", "user", "pass") or die(mysql_error()); 

im obtenir:

Accès refusé (en utilisant le mot de passe: YES) 'utilisateur' @ 'serveur' pour l'utilisateur

mais quand je cha nge les guillemets autour du mot de passe à guillemets simples:

mysql_connect("server", "user", 'pass') or die(mysql_error()); 

cela fonctionne très bien. Je n'ai pas ce problème dans un autre serveur que j'ai. alors peut-être que c'est quelque chose dans les paramètres mysql ou dans le php.ini?

merci.

+2

Votre mot de passe a un '$' dedans, n'est-ce pas? – Wrikken

Répondre

2

Est-ce que votre mot de passe contient des caractères spéciaux tels $? Dans les guillemets, PHP essayera d'interpréter les variables. Ainsi, "My$Password" donnerait en PHP la recherche d'une variable appelée $Password, qui n'est pas là. Donc, la chaîne de mot de passe qui en résulte sera simplement My. (Si vous avez activé l'affichage des erreurs E_NOTICE, vous devriez en obtenir un.)

De plus, des séquences de caractères spéciaux comme \n sont interprétées entre guillemets.

Questions connexes