PDO错误处理,这样可以吗?

时间:2014-11-09 20:45:05

标签: php pdo error-handling

我通过try和catch使用PDO,因此我可以将错误捕获到用户定义的函数中。我想知道这种方法是否可以接受。

Try and Catch:

Try
{

...

} catch (Exception $e) {
    // Proccess error
    $msg = $e->getMessage();
    $timestamp = date("Y-m-d H:i:s");
    $line = $e->getLine();
    $code = $e->getCode();

    handle_error($msg, $timestamp, $line, $code);
    die("oops! It's look like we got an error here! Try Again!");
}

错误处理功能:

function handle_error($msg, $timestamp, $line, $code) {

    $file = 'errorlog.txt';
    $data = "$timestamp // Error Message: $msg | Error Code: $code | Error Line: $line \n";
    file_put_contents($file, $data, FILE_APPEND);

    return;
}

由于

2 个答案:

答案 0 :(得分:0)

我唯一能想到的可能是错误的是,如果用户有机会找到触发PDO错误的方法,那么他基本上可以通过一遍又一遍地触发系统来对系统进行DDoS并用你的硬盘填满你的硬盘。同样的错误。更不用说它可以耗尽你所有的磁盘I / O带宽(当利用它时)。

然后,Apache再次进行类似的日志记录,即使在DDoS攻击下,我还没有听说过硬盘已经被填满了。

答案 1 :(得分:0)

您可以通过更改类似于此

的代码来简化日志写入
catch (PDOException $e) {
$my_error = "Failed;" . $e;
error_log(print_r($my_error,TRUE));
}