IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de donn�es Discussion :

Comment afficher les erreurs MySQL en local ? [MySQL]


Sujet :

PHP & Base de donn�es

  1. #1
    Membre confirm�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Novembre 2006
    Messages
    74
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 74
    Par d�faut Comment afficher les erreurs MySQL en local ?
    Bonjour,

    Sur mon serveur de tests (linux), un fichier test.php g�n�re l'erreur suivante:
    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/test.php on line 29
    Sur mon PC en local (Windows), le m�me fichier ne g�n�re aucune erreur.

    J'aimerais savoir comment afficher cette erreur (et d'autres �ventuellement) sur mon PC en local, pour faire les corrections.

    Je sais que pour ne plus afficher cette erreur, il faut �tablir la connexion avec MySQL avant d'appeler la fonction mysql-real-escape-string. Mais ce n'est pas cela mon probl�me. Ce que je veux, c'est de pouvoir avoir les m�mes erreurs sur mon PC en local.

    Merci pour votre aide.

  2. #2
    Mod�rateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par d�faut
    J'aimerais savoir comment afficher cette erreur
    Est ce que ton probl�me est que l'erreur ne s'affiche pas ou bien qu'elle ne se produit pas ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre exp�riment�
    Inscrit en
    Mai 2010
    Messages
    177
    D�tails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 177
    Par d�faut
    Va dans le fichier PHP.ini et trouve cette ligne:

    display_errors = Off

    Change la pour

    display_errors = On

    Maintenant, les erreurs PHP devraient appara�tre quand elles se produisent. N'oublie �videmment pas de red�marrer ton serveur pour qu'il prenne en compte cette nouvelle configuration.

  4. #4
    Membre confirm�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Novembre 2006
    Messages
    74
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 74
    Par d�faut
    Merci pour vos r�ponses.
    Est ce que ton probl�me est que l'erreur ne s'affiche pas ou bien qu'elle ne se produit pas ?
    Eh bien, Elle ne s'affiche pas, c'est s�r. Mais je ne sais pas si elle se produit. Comment v�rifier ?

    Va dans le fichier PHP.ini et trouve cette ligne: display_errors = Off
    Dans le fichier php.ini, display_errors = On.

  5. #5
    Membre exp�riment�
    Inscrit en
    Mai 2010
    Messages
    177
    D�tails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 177
    Par d�faut
    C'est peut-�tre le error_reporting qui n'a pas la bonne valeur. Dans le PHP.ini, cherche cette ligne et v�rifie qu'elle a bien la valeur E_ALL, comme ci-dessous... autrement dit, fait afficher toutes les erreurs. Si ce n'est pas le cas, PHP va skipper certaines erreurs dans son affichage.

    error_reporting = E_ALL

  6. #6
    Membre confirm�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Novembre 2006
    Messages
    74
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 74
    Par d�faut
    J'ai v�rifi�, le error reporting dans php.ini:
    error_reporting = E_ALL | E_STRICT

  7. #7
    Expert confirm�

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par d�faut
    active le mysql.trace_mode

  8. #8
    Membre confirm�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Novembre 2006
    Messages
    74
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 74
    Par d�faut
    mysql.trace_mode est bien activ� dans mon php.ini.

  9. #9
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    D�tails du profil
    Informations personnelles :
    Localisation : R�union

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par d�faut
    Salut

    Tu ne dois pas te r�f�rer au bon php.ini, c'est pas possible (il y en a plusieurs).

    Appelle la fonction un phpinfo() dans ton code, et recherche les directives en question (display_errors, error_reporting, mysql.trace_mode), et leur valeur locales.
    Recherche aussi la ligne "Loaded Configuration File", il t'indique le chemin (l'endroit) o� ce situe le php.ini auquel le serveur se r�f�re. C'est celui l� qu'il faut modifier (ne pas oublier de red�marrer Apache).


    Ou alors fait des ini_get() pour connaitre les valeurs utilis�es :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    echo 'display_errors : '.ini_get('display_errors').'<br />';
    echo 'error_reporting : '.ini_get('error_reporting').'<br />';
    echo 'mysql.trace_mode : '.ini_get('mysql.trace_mode').'<br />';
    Mais encore, en admettant que �a soit le bon php.ini, ces directives y sont � plusieurs, ce sont des commentaires/explications.
    Toutes ces lignes commencent pas des ; (points virgules), qui d�fini une ligne en commentaire, donc inactive.
    Les directives active sont donc celle dont la ligne n'est pas comment�e (pas de ;
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    ;display_errors = On <-- Ligne en commentaire, donc non active
    display_errors = Off <-- Ligne active (pas de ; au début)

  10. #10
    Membre confirm�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Novembre 2006
    Messages
    74
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 74
    Par d�faut
    Ces lignes ...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    echo 'display_errors : '.ini_get('display_errors').'<br />';
    echo 'error_reporting : '.ini_get('error_reporting').'<br />';
    echo 'mysql.trace_mode : '.ini_get('mysql.trace_mode').'<br />';
    donnent:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    display_errors : 1
    error_reporting : -1
    mysql.trace_mode : 1

  11. #11
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    D�tails du profil
    Informations personnelles :
    Localisation : R�union

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par d�faut
    Plut�t bizarre

    Et si tu change le error_reporting par E_ALL | E_STRICT dans le php.ini (qui correspond � 32767) ?

    Puis provoque une erreur volontairement, genre echo $truc;
    L'erreur de notice disant que $truc n'est pas d�finie est elle affich�e ?

  12. #12
    Expert confirm�

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par d�faut
    si tu fais pas de connexion il se connecte avec l'utilisateur en cours, donc celui qui lance php, sinon il va chercher le mysql.default_user, il suffis de faire get_current_user() pour savoir l'utilisateur

  13. #13
    Membre confirm�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Novembre 2006
    Messages
    74
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 74
    Par d�faut
    Bonjour,

    Le probl�me est maintenant r�solu.

    Pour mieux comprendre, j'ai arr�t� le service mysql et l�, le message d'erreur est bien apparu.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to MySQL server on 'localhost' (10061) in G:\...\test.php on line 56
    Le service relanc�, je suis donc all� v�rifier les utilisateurs de mysql et surprise: les utilisateurs "N'importe quel" et "pma" n'avaient pas de mot de passe. Je leur ai d�fini des mots de passe, et l'erreur s'affiche parfaitement.

    Merci � tous de m'avoir aid� � r�soudre ce probl�me.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 8
    Dernier message: 22/04/2011, 22h27
  2. R�ponses: 3
    Dernier message: 22/11/2007, 16h35
  3. [DEBUTANT] Comment afficher les erreurs ?
    Par ionix dans le forum Langage
    R�ponses: 2
    Dernier message: 20/10/2006, 17h13
  4. [web] comment afficher les erreur d'un cgi
    Par chtiboss dans le forum Web
    R�ponses: 6
    Dernier message: 24/12/2003, 12h22
  5. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requ�tes
    R�ponses: 2
    Dernier message: 17/06/2003, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo