2015-08-24 37 views
0

我有一個PHP自定義錯誤處理程序,除了運行數據庫查詢之外,它執行它應該執行的所有操作。代碼是PHP自定義錯誤處理程序將不會運行SQL查詢

public function fatalErrHandlr(){ 
    $errstrArr = error_get_last(); 
    $errno = $errstrArr['type']; 
    $errstr = $errstrArr['message']; 
    $errfile = $errstrArr['file']; 
    $errline = $errstrArr['line']; 
    $query = "INSERT INTO `err` (`errno`, `errstr`, `errfile`, `errline`) VALUES ('$errno', '$errstr', '$errfile', '$errline')"; 
    mysqli_query($this->dbc, $query); 
    echo("<b>There was an error. Check the database.</b>"); 
    return true; 
} 

當我運行這個,它應該把錯誤在數據庫中,但沒有添加到表中。我確實在phpMyAdmin中運行了查詢,並且在那裏沒有錯誤。

+0

嘗試打印您的查詢並查看它是如何形成的。這會給你一個想法,如果有什麼錯誤。 – Rahul

+0

我會再次分離您的自定義錯誤處理程序並向數據提供errstrArr數組,然後單獨運行您在此處編寫的代碼以查看它是否實際引發錯誤,從而開始調試。 – BlackCetha

+0

'var_dump(mysqli_error($ this-> dbc));'查看錯誤 – CodeGodie

回答

0

這裏的問題是缺少mysqli_real_escape_string();,它只是我跳過的東西,但它在SQL查詢中非常重要。

相關問題