2012-07-18 44 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