thinkphp获取mysql错误
2015-08-25 10:18
585 查看
最近用thinkphp时发现无法捕获mysql的错误信息,例如向表中插入一个主键 重复的数据时,程序便卡在那条语句上,就像下面这样
:(
在代码中 使用try catch 无效,最后修改 Driver.class.php文件
中169行和226行的
修改为
这样就可以灵活处理pdo的错误了,当然上面的显示错误信息的代码,可以改成给管理员发邮件,或是记录日志等功能。
这个办法改动了框架底层,以后升级时会比较麻烦。哪位朋友有更好的办法还请不吝告知。
:(
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key 'PRIMARY'
错误位置
FILE: D:\*****\ThinkPHP\Library\Think\Db\Driver.class.php LINE: 226TRACE
#0 D:\*****\ThinkPHP\Library\Think\Db\Driver.class.php(226): PDOStatement->execute()在代码中 使用try catch 无效,最后修改 Driver.class.php文件
中169行和226行的
$result = $this->PDOStatement->execute();
修改为
try{//lighthouse $result = $this->PDOStatement->execute() ; }catch (\PDOException $e) { echo 'queryStr='.$this->queryStr.'<br/>'; print "Error: " . $e->getMessage() . "<br/>"; return -1; }
这样就可以灵活处理pdo的错误了,当然上面的显示错误信息的代码,可以改成给管理员发邮件,或是记录日志等功能。
这个办法改动了框架底层,以后升级时会比较麻烦。哪位朋友有更好的办法还请不吝告知。
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜