Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/10/2006, 14h51   #1
Invité de passage
 
Inscription : août 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 2
Points : 2
Points : 2
Par défaut Message d'anomalie généré

Bonjour

J'utilise les mêmes scripts sur la version MySQL 4.1.11 sur un serveur et la version MySQL 4.0.23a sur un autre serveur :


Voici par exemple deux anomalies volontaires sur mes scripts.

En version 4.0.23a :

Exemple 1 d'erreur :
Warning: mysql_query(): Can't connect to local MySQL server through socket '/usr/local/mysql/tmp/mysql.socket' (13) in /usr/local/apache/htdocs/NetG2Paie/fonctions/fonction.base.php on line 37

Warning: mysql_query(): A link to the server could not be established in /usr/local/apache/htdocs/NetG2Paie/fonctions/fonction.base.php on line 37
erreur : Can't connect to local MySQL server through socket '/usr/local/mysql/tmp/mysql.socket' (13)

Exemple 2 d'erreur :
Parse error: parse error, unexpected T_VARIABLE in /usr/local/apache/htdocs/NetG2Paie/Saisie.Collective.Activite/s72collective.php on line 21

Les erreurs sont faciles à trouver !
Alors que
En version 4.1.11 :

Exemple 1 d'erreur :
erreur : Access denied for user 'apache'@'localhost' (using password: NO)

Exemple 2 d'erreur :
L'écran est vide. Aucun message n'est affiché!

Est-ce normal? Manque-t-il des paramètres dans la version 4.1.11 pour avoir des messages plus explicites en version 4.1.11?

Je vous remercie pour votre aide.
deboc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 06h15   #2
Membre du Club
 
Inscription : septembre 2006
Messages : 72
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 72
Points : 55
Points : 55
Regarde plutot au niveau de php, visiblement les seules requêtes qui renvoient des erreurs sont celle qui sont testées.

A l'heure actuelle, tes scripts doivent ressembler à cela :

mysql_query('TA_REQUETE');

Pour qu'ils renvoient des erreurs en cas d'echec, il suffit d'ajouter les fonctions die() et mysql_error() de la manière suivante :

mysql_query('TA_REQUETE') or die ('Erreur SQL : '.mysql_error());

Ceci est un exemple qui convient à ta demande mais sache que d'un point de vue sécurité, ce n'est pas top... et qu'il est préférable d'afficher proprement une erreur générique, tout en t'avertissant des details de l'erreur par mail ou dans un fichier de log.

Sinon tu peux aussi faire un tour dans le php.ini de ton serveur si tu y as accès pour vérifier que les paramètres suivants :

"display_errors = on"
"error_reporting = E_ALL" ou bien "error_reporting = E_ALL & ~E_NOTICE"

Si tu n'y a pas accès, tu pourras consulter les valeurs de ces paramètre grâce à un phpinfo, et tenter de changer le niveau d'erreur a l'aide de la fonction error_reporting().

Voila, je pense avoir fait le tour... Bonne chance !
big_ben3333 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 06h40   #3
Membre du Club
 
Inscription : septembre 2006
Messages : 72
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 72
Points : 55
Points : 55
Par hasard je viens aussi de trouver une autre des causes possible de ton probléme :

php.ini :

"mysql.trace_mode = Off" alors qu'il devrait être à 'On'...

Cette option permet visiblement d'afficher les erreurs SQL pour les opérations sur les tables.
big_ben3333 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h51.


 
 
 
 
Partenaires

Hébergement Web