1.pdo::errmode_silent 静默模式,不终止代码,只能使用 $pdo->errorcode() 和 $pdo->errorinfo() 获取错误信息 , 这个是默认情况下 , 也就是不停断 , 不记日志

注意这种形式下不容易错误排查

2.pdo::errmode_warning 警告模式,不终止代码,在错误日志中出现warning类型的错误信息
/var/log/apache/xxx-error.log
[fri mar 09 16:02:50 2018] [error] [client 61.135.152.130] php warning: pdostatement::execute(): sqlstate[42s02]: base table or view not found: 1146 table ‘sinanet.mass_list’ doesn’t exist in /mnt/publi

 

3.pdo::errmode_exception 异常模式,终止代码,抛出异常信息,使用try()catch(){}捕获
记录到应用日志里/var/log/sinamail/webmail.log
mar 9 15:54:13 vm-228-187 webmail: 2018-03-09 15:54:13 xxx xxxx 61.135.152.130 /usr/local/wa.php – app_run_action msg=>sqlstate[42s02]: base table or view not found: 1146 table ‘sinanet.mass_list’ doesn’t exist,code=>42
异常模式另一个非常有用的是,相比传统 php 风格的警告,可以更清晰地构建自己的错误处理,而且比起静默模式和显式地检查每种数据库调用的返回值,异常模式需要的代码/嵌套更少。