私は私のPHPアプリケーションで透過的なmysql_errorログインをしたいと思います。私はまだ、次のやった:透過的なmysql_errorロギング:mysql_error()を2回読むにはどうすればよいですか?
function mysql_query_log_error($query) {
$debug_trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
$caller = $debug_trace[1];
$file = substr($caller[file], strrpos($caller[file], '/')+1);
$line = $caller[line];
$error = mysql_error();
$error_query = "INSERT INTO Common.ERRsql SET "
."errQuery = '".mysql_real_escape_string($query)."', "
."errText = '".mysql_real_escape_string($error)."', "
."errDate = NOW(), "
."errFile = '".mysql_real_escape_string($file)."', "
."errLine = '".mysql_real_escape_string($line)."' ";
mysql_query($error_query);
}
function mysql_query_log($query) {
$result = mysql_query($query) or mysql_query_log_error($query);
return $result;
}
をしかし、私はmysql_query_log_error()
機能でmysql_error()
を読んだときに、元の発信者はmysql_error()
(それが空の文字列を返すため、それが「読み出し」ですので)にアクセスすることはできません。
どのように私は透明な方法でそれを行うことができます、つまり、mysql_error()
は元のままですか?
エラーを生成したのと同じストレージを使用するのはそれほど賢明ではないと思いませんか? –
よくありますが、ほとんどのエラーは間違ったSQL文(表名の変更、列の変更、不正な文字列の処理など)から発生します。 – netmano