私はmysqli操作のためにBennett Stone php wrapperクラスを使用しています。クラスは何の問題もなく正常に動作しています。その中には、mysqliエラーのある種類の電子メールを管理者に送信する機能(以下で共有)があります。クラス内にPHPスクリプト名を投げてエラーが発生する
問題
このクラスを使用してスクリプトの100ののがありますが、私は、任意の特定のエラーがスローされたスクリプトを見つけることができないのです。
は私が
をしたい私は、クエリが元の場所からのクラスの内部エラー元のスクリプトのフルパスを取得したいです。例えば、test.phpにはクエリ&が含まれています。何らかのエラーが出てきたら、エラー処理の中でtest.phpの完全なパスとエラーの詳細(以下で共有します)が必要です。機能
public function log_db_errors($error, $query)
{
$message = '<p>Error at '. date('Y-m-d H:i:s').':</p>';
$message .= '<p>Query: '. htmlentities($query).'<br />';
$message .= 'Error: ' . $error;
$message .= '</p>';
if(defined('SEND_ERRORS_TO'))
{
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: Admin <'.SEND_ERRORS_TO.'>' . "\r\n";
$headers .= 'From: systems<[email protected]'.$_SERVER['SERVER_NAME'].'.com>' . "\r\n";
mail(SEND_ERRORS_TO, 'Database Error', $message, $headers);
}
else
{
trigger_error($message);
}
if(!defined('DISPLAY_DEBUG') || (defined('DISPLAY_DEBUG') && DISPLAY_DEBUG))
{
echo $message;
}
}
を扱う
Error at 2016-08-23 05:44:18:
Query: SELECT email FROM users WHERE
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
がエラー:私は私はこのような詳細情報を取得しています私自身の
によって行うことができます
クラスの変更を行うことができますどのような
[debug_backtrace](のhttp:/ /php.net/debug_backtrace)が役に立ちます。 –
@JonStirlingの状態 - [Debug Backtrace](http://php.net/debug_backtrace)は、ここで私が以下に述べたように@Martin – Martin
を探検したいものです。PHPの例外はデフォルトでスタックトレースを提供します。手作業でコードを書く必要はありません。 –