2010-12-01 54 views
0

您對使用以下函數記錄mysql錯誤有什麼想法?PHP MySQL錯誤日誌功能

<?php 
function sql_query($query) 
{ 
    $q = mysql_query($query); 
    if(!$q) 
    { 
    mysql_query('INSERT INTO mysql_errors (error_query, error_about) VALUES ('. 
    $query.', '.mysql_error().')'); 
    } 
    return $q; 
} 
?> 

你覺得它有用嗎?如何改進?

回答

0

我可以使用這個,如果我找到一種方法來誘導正確的錯誤,做一個SQL注入。

爲什麼不直接使用MySQL的本機錯誤日誌?是否有理由將它們填充到數據庫中?

0

它看起來像你還沒有消毒輸入,如果$查詢包含'?它會導致另一個SQL錯誤。

0

當然,您已經打開了數據庫連接並且不需要在這裏打開它們,只要您在第二個查詢中的值有單引號,該函數就可以按預期工作。在相關說明中,mysql_error日誌不夠嗎?

+0

我的網站不在我的服務器上,我使用phpMyAdmin查看數據庫 – 2010-12-01 16:22:52

1

應該是:

mysql_query("INSERT INTO mysql_errors (error_query, error_about, error_date) VALUES ('". 
    mysql_real_escape_string($query)."', '".mysql_real_escape_string(mysql_error())."',NOW())"); 

我加了一個日期字段和消毒輸入。需要有一種方法來區分新舊錯誤,並使用日期字段。