Php 处理PDO异常';s当DB返回错误语句时
我想知道如何准确地处理PDO类中可用的数据库驱动程序返回的错误语句 例如,让我们以独特的字段作为研究案例 您应该知道,至少当PDO的调试模式处于活动状态时,当尝试在数据库的唯一字段中添加重复的内容时,我们会收到一个PDO异常 我想知道正确的处理方法是什么。我搜索了一下,得到了这个:Php 处理PDO异常';s当DB返回错误语句时,php,exception,pdo,unique,Php,Exception,Pdo,Unique,我想知道如何准确地处理PDO类中可用的数据库驱动程序返回的错误语句 例如,让我们以独特的字段作为研究案例 您应该知道,至少当PDO的调试模式处于活动状态时,当尝试在数据库的唯一字段中添加重复的内容时,我们会收到一个PDO异常 我想知道正确的处理方法是什么。我搜索了一下,得到了这个: try { // PDO::prepare(), PDOStatement::execute e etc. } catch( PDOException $e ) { if( $e -> g
try {
// PDO::prepare(), PDOStatement::execute e etc.
} catch( PDOException $e ) {
if( $e -> getCode() == 23000 ) {
// Do something
}
}
但我不确定它是否正确,作为程序员,这真的是一个好的实践吗?我是说,依赖错误代码
更糟糕的是:PDO接受多个驱动程序,它们共享相同的错误代码
当然,这不是唯一的情况。还有其他几个错误代码,对吗?这种“技术”可以在所有情况下使用?看了之后,我觉得您可能需要依靠$e->getMessage()
来找出错误所在
阅读其中一篇文章时,您可能需要从消息中提取正确的错误代码
PDO似乎是以一种相当奇怪的方式编程的!但在处理多种数据库类型时,它仍然非常宝贵 我认为更安全的做法是查询现有的结果,然后检查它是否存在。