Bru*_*sto 6 php pdo exception unique
我想知道我究竟能如何处理PDO类中可用的DataBase驱动程序返回的错误语句.
例如,让我们将UNIQUE Fields作为研究案例.
您应该知道,至少在PDO的调试模式处于活动状态时,当尝试在数据库的UNIQUE字段中添加重复的内容时,我们会收到PDOException.
我想知道处理这个问题的正确方法是什么.我搜索了它,我得到了这个:
try {
// PDO::prepare(), PDOStatement::execute e etc.
} catch( PDOException $e ) {
if( $e -> getCode() == 23000 ) {
// Do something
}
}
Run Code Online (Sandbox Code Playgroud)
但是我不确定它是否正确,并且作为程序员,这真的是一个好习惯吗?我的意思是,依赖于错误代码?
更糟糕的是:PDO接受多个驱动程序,它们共享相同的错误代码?
当然,这不是唯一的情况.还有其他几个错误代码,对吗?这种"技术"可以在所有情况下使用吗?
查看http://php.net/manual/en/class.pdoexception.php后,我感觉您可能需要依赖来$e->getMessage()找出错误是什么。
阅读所提供的一篇帖子,您可能需要从消息中提取正确的错误代码。
PDO 似乎是以一种相当奇怪的方式编程的!但在处理多种数据库类型时,它仍然非常有价值!