|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2005 Messages : 26 ![]() |
Voila mon problème est que j'ai un script qui s'execute et affiche un warning (ici c'est le moteur php qui me la montre : genre Warning : mysql_fetch_row : argument blabla ligne 459)
Pour affiner mon debug sur cette requete je decide d'executer un or die(mysql_error) a toutes les requetes de la page ou cela est utile. En faisant j'ai une réponse de mysql_error mais le premier Warning n'est plus affiché! Est ce normal? |
|
|
00
|
|
|
#2 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Oui, c'est normal, car tu as une erreur MySQL et comme tu utilises la fonction die() qui interdit au reste de la page de s'afficher/exécuter ...
|
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2005 Messages : 26 ![]() |
Ouaouhh super!
Euh par contre n'y aurait t-il pas un moyen de savoir a quel endroit c'est produit l'erreur. Parce que ce n'est plus indiqué du coup quand on a pas mal de die() lequel c'est enclenché?? Merci! |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Inscription : décembre 2005 Messages : 766 ![]() |
|
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2005 Messages : 26 ![]() |
Vous en avez d'autres comme ca?
Y a pas un tuto des astuces magiques dans PHP? Merci |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2005 Messages : 26 ![]() |
Au fait comment faire pour écrire une telle ligne du genre:
mysql_query() or die (mysql_error(); echo(_LINE_) Je sais die() est uen fonction mais je vois pas la solution. |
|
|
00
|
|
|
#7 | ||
|
Membre chevronné
![]() Inscription : décembre 2005 Messages : 766 ![]() |
die() affiche ce que tu lui transmet en paramètre... donc pourquoi te compliquer le vie... .. ?
Code :
ps : pour les truc maqgiques... pas de secrets... la doc PHP est ton amie... .. . |
||
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2005 Messages : 26 ![]() |
Tiens j'ai une derniere:
Ma requete mysql_query est stockée dans un fichier annexe (elle porte un autre nom), c'est comme ca que le code est fait, il faut donc que je l'appelle à chaque fois que je veux faire un mysql_query(). Imaginons qu'elle s'appelle requete_sql() : a chaque fois que je l'appelle elle va chercher sa définition dans ce fameux fichier annexe. Ainsi donc l'erreur se produit toujours au meme endroit dans le fichier inclus, à une certaine ligne. En fait la solution serait de remonter l'erreur dans le code à l'instruction précédente. Avec un truc du genre (__FILE__ - 1)." ".(__LINE__ - 1). S'il existe d'autres solutions tell me, c'est hyper interressant |
|
|
00
|
|
|
#9 |
|
Membre chevronné
![]() Inscription : décembre 2005 Messages : 766 ![]() |
debug_backtrace()
Après à toi de filtrer les données que tu veux dans le context de débogage qui t'es retourné... .. . @ tchaOo° |
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2005 Messages : 26 ![]() |
J'ai un peu de mal avec cette fonction, je comprend pas la différence entre les constantes magiques (__LINE__ __FILE__ ...) et les outputs de cette fonction. Ce que j'aimerais c'est retourner à l'instruction (la ligne plus précisément) qui précède mon erreur et qui malheureusement ce trouve sur un autre fichier que celui où s'est produit l'erreur.
Merci de m'aiguiller [EDIT] En fait la fonction me retourne l'erreur précedente : l'erreur retourné est situé au niveau d'un Dans ce cas la il me faudrait la ligne qui s'est déroulée 2 instructions avant! Ou comment retrouver l'instruction qui a fait appel à cet include. Pour résumé mon problème : [code] requete_sql(); // fonction (c'est cette ligne qui provoque une erreur!) include(); // va chercher "requete_sql()" dans un fichier externe mysql_query() // execute enfin l'instruction SQL Comment retrouvé la premiere ligne? [/EDIT] |
|
|
00
|
|
|
#11 |
|
Membre chevronné
![]() Inscription : décembre 2005 Messages : 766 ![]() |
Si ta fonction génère une erreur au niveau de php elle s'affichera... sinon à toi de générer des erreur quand il y a un problème... avec debug_backtrace() ou debug_print_backtrace() si tu es sous php5 tu peux voir le context de debogage c'est à dire ce qui s'est passé pendant l'execution du scrit (fonctions, includes, etc)... .. .
@ tchaOo° |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com