Gestion des erreurs Mysql

WRInaute passionné
Salut à tous,

Je souhaiterai pouvoir gérer les éventuelles erreurs Mysql qui s'affiche mais je n'y arrive pas :?

Je souhaiterai pouvoir afficher les erreurs Mysql en local mais pas en prod, j'ai donc penser à mettre dans une variable le message d'erreur à afficher (je bascule de l'un à l'autre en fonction de si je suis ne local ou en prod), voici mon code :

// Affichage erreurs Mysql
//$erreur_mysql = "Mon message erreur mysql";
$erreur_mysql = mysql_error();

$result = @mysql_query("SELECT * FROM ma_table WHERE code=1") OR die($erreur_mysql);

Mais ça ne marche pas lorsque la variable est "mysql_error()", voyez vous mon erreur ?

Merci pour votre aide.
 
WRInaute passionné
Merci pour vos réponses.

Mettre un @ devant le mysql_query permet de ne plus afficher ces erreurs mysql mais c'est parfois gênant de ne pas les voir, surtout lorsqu'on travail en local !

la fonction PHP error_log() permet de stocker le message d'erreur dans un fichier mais c'est un peu plus contraignant à mettre en place et à utiliser pour visualiser les erreurs !

Quelle méthode vous utilisez pour afficher les éventuelles messages d'erreurs Mysql lorsque vous travaillé en local mais qu'ils ne s'affichent pas en prod ?
 
WRInaute passionné
Merci pour ta réponse tryan qui m'a bien aidé :D

J'ai crée cette fonction php qui affiche les erreurs mysql en local mais n'affichera pas les erreurs si l'adresse IP est différente de 127.0.0.1 :

Code:
function get_requete($requete){
if($_SERVER["REMOTE_ADDR"]=='127.0.0.1'){$result = mysql_query("$requete") OR die(mysql_error());}
else{$result = @mysql_query("$requete");}
return $result;
}

Il suffit ensuite d'appeler la fonction dans une page php comme cela :

Code:
$result = get_requete("SELECT * FROM ma_table WHERE etc....");
 
Discussions similaires
Haut