2011-12-01 60 views
2

我有一個「大」的Facebook應用程序出現。它在php中使用mysql進行編程(和mysql_-class,而不是PDO ......我知道,我知道)。由於我接近公開測試版,我想跟蹤任何mysql錯誤。我有一個很好的主機,我知道腳本永遠不會丟失與數據庫的連接,所以我想我可以將它存儲在一個表中。錯誤日誌記錄mysql,最佳實踐

我想跟蹤查詢失敗(不是問題),但我也想知道發生了什麼行和文件。我在幾個腳本中看到__LINE__,但我從來沒有想過如何使用它。

我的基本只是看起來是這樣的:

$query = 'SELECT * ...'; 
$result = mysql_do_query($query); 

function mysql_do_query ($q) { 
    [...] 
} 

我真正的問題是;是否可以記錄功能mysql_do_query被調用的地方?什麼線路等等還是有另一種方式來做到這一點?嘗試和例外,也許?

+0

閱讀此:http://php.net/manual/en/function.debug-backtrace.php – TFennis

+3

知道腳本永遠不會失去與數據庫的連接...我強烈不同意這個 – ajreal

+0

那麼,我我自己開發這個項目已經兩年了,我的主人非常可靠,而我見過的唯一問題是我的查詢失敗,因爲結果不如預期。我可以簡單地使用文本文件並將其保存在那裏,但我希望有更多的監視選項。所以「從不」也許是錯誤的,但我認爲99.9%的錯誤是由我和我的編程引起的。 (@ajreal) – OptimusCrime

回答

0

您可以使用magic constants,或debug_backtrace,或寫自己的錯誤處理。

+0

魔術常量似乎是要走的路,但是如果我在我的函數中使用'__LINE__'等,它會顯示函數中的行還是函數被調用的位置?我假設我必須將LINE部分作爲參數? – OptimusCrime

0
trigger_error(mysql_error()." $q");