récup erreurs

Eléphant du PHP | 171 Messages

05 nov. 2005, 17:52

Bonjour,
j'ai un script déclenché tous les jours par webrcon qui effectue des tâches de maintenance sur un site web, en php et mysql.
J'aimerais gardre un oeil sur les opérations effectuées.
Comment faire pour récup dans une variable les éventuelles erreurs sql?
je vois à peu près comment faire mais je suis pas sûr
Voici mon code:

Code : Tout sélectionner

$result = mysql_query($requete); if ($result != mysql_query($requete)) { $erreur .= die ( mysql_error().mysql_errno()) }

Mammouth du PHP | 19672 Messages

05 nov. 2005, 17:54

Si tu mets "die()", le script s'arrête en cas d'erreur. Ne mets que "mysql_error" et "mysql_errno" pour enregistrer ça dans un log, sans le "die()".
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

08 nov. 2005, 19:18

comment pourrais-je faire la même chose avec une erreur php sur un fopen() par exemple?

Mammouth du PHP | 1311 Messages

08 nov. 2005, 19:20

salut
if(!fopen(..))
exit();

Invité
Invité n'ayant pas de compte PHPfrance

08 nov. 2005, 19:21

je veux dire:
je pourrais concaténer un message d'erreur pour fopen() dans une var mais je voulais savoir s'il y a des fonctions du type msqlerror et errno pour php.

Mammouth du PHP | 1311 Messages

08 nov. 2005, 19:22

a ok va sur php.net et recherche errno du devrai trouver ton bonheur

Invité
Invité n'ayant pas de compte PHPfrance

08 nov. 2005, 19:36

ok
sinon pour écrire mes erreurs sql sans un fichier log.txt, j'ai fait ceci mais ça je marche pas. Il y a bien une erreur mais elle n'est pas inscrite dans le log.
    $result = mysql_query($requete); 
    if ($result != mysql_query($requete)) { 
	$erreur_sql = "";   
	$erreur_sql .= mysql_error().mysql_errno(); 
	
	$fp = fopen("log.txt", "a");
	fwrite($fp, $erreur_sql);
	fclose($fp);

	} 

Invité
Invité n'ayant pas de compte PHPfrance

09 nov. 2005, 00:51

personne ne voit où j'ai pu oublier quelquechose?

Invité
Invité n'ayant pas de compte PHPfrance

09 nov. 2005, 01:58

ok, tout marche nickel avec ça:

    if (!$result = mysql_query($requete)) { 
	$erreur_sql .= mysql_error(). mysql_errno() . " \r\n"; 
	$fp = fopen("log.txt", "a+");
	fputs($fp,$erreur_sql);  
	fclose($fp);
   }