2012-07-18 45 views
1

有一个重复的代码,像这样的行:查明在函数被调用

$SQL = " INSERT INTO ... "; 

mysql_query($SQL, $conexion); 
$error = mysql_error(); 

if($_ADM['id_user']==1) { 
    if(! empty($error)) { 
     $debug = array(
        'message' => "SQL Error in news_edit module.", 
        'line' => '177', 
        'error' => $error, 
        'SQL'  => $SQL 
       ); 
     exit(print_r($debug)); 
    } 
} 

这是一种常见的代码,即重复其自身每次$SQL变化。我试图实现的是一种调试方式,如果有任何错误发生,并且我可以看到,我有line参数,其中包含最后执行mysql_query的数字行,但我必须手动输入该参数,并且每次我在它之前添加代码,line参数需要用新的行值更改。

有没有什么方法可以识别上次执行的时间是mysql_query?改进上述代码的其他方式?

回答

0

我想你想要的是debug_backtrace函数。 检查规格手册:

http://php.net/manual/en/function.debug-backtrace.php

+0

哦,再次阅读文档后我认为这可能是一个解决方案。用'debug_backtrace()'函数创建一个通用的调试函数,并在出错时调用该函数。 Tnx – Alex 2012-07-18 10:07:39

+0

没问题,我用它进行调试,所以我知道这太棒了:) – Zagor23 2012-07-18 10:10:38

3

尝试使用

'line'=> __LINE__, 

它的一个幻常量,显示文件的当前行..

+0

有趣,我刚刚学到了一些新东西。 Tnkx – Alex 2012-07-18 09:52:24