|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2006 Messages : 2 ![]() |
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. |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : septembre 2006 Messages : 72 ![]() |
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 ! |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : septembre 2006 Messages : 72 ![]() |
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. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com