41 lines
1.4 KiB
PHP
41 lines
1.4 KiB
PHP
|
<?php
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://zjzit.cn>
|
||
|
// +----------------------------------------------------------------------
|
||
|
|
||
|
namespace think\exception;
|
||
|
|
||
|
/**
|
||
|
* PDO异常处理类
|
||
|
* 重新封装了系统的\PDOException类
|
||
|
*/
|
||
|
class PDOException extends DbException
|
||
|
{
|
||
|
/**
|
||
|
* PDOException constructor.
|
||
|
* @access public
|
||
|
* @param \PDOException $exception
|
||
|
* @param array $config
|
||
|
* @param string $sql
|
||
|
* @param int $code
|
||
|
*/
|
||
|
public function __construct(\PDOException $exception, array $config, $sql, $code = 10501)
|
||
|
{
|
||
|
$error = $exception->errorInfo;
|
||
|
|
||
|
$this->setData('PDO Error Info', [
|
||
|
'SQLSTATE' => $error[0],
|
||
|
'Driver Error Code' => isset($error[1]) ? $error[1] : 0,
|
||
|
'Driver Error Message' => isset($error[2]) ? $error[2] : '',
|
||
|
]);
|
||
|
|
||
|
parent::__construct($exception->getMessage(), $config, $sql, $code);
|
||
|
}
|
||
|
}
|