踩坑,PDO的commit方法就算数据库down了也不会返回false。

05-17 17:08 字数 405 阅读 1501

如题,不要依赖这个commit()方法的返回值,测试发现在commit执行前把mysql关闭,此函数还是会返回true,只是脚本会抛出一个warning级别的警告信息。

commit方法

及时pdo的errormode设置的是 ERRMODE_EXCEPTION

$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false,
];

如果想知道commit是否执行成功,请使用query方法执行commit语句。

return $pdo->query("commit");

query方法在遇到MySQL down机的时候会抛出error级别的错误。 query方法

2人点赞>
关注 收藏 改进 举报
0 条评论
排序方式 时间 投票
快来抢占一楼吧
请登录后发表评论
站长 @ 十七度
文章
384
粉丝
23
喜欢
195
收藏
31
排名 : 1
访问 : 146.15万
私信