我想捕捉并使用PHP显示网页上的查询错误(以我选择的方式).所以代替下面的代码
$result=pg_query($connection,$query);
if($result){
//success
}
else{
echo pg_last_error($connection);
}
if(error equals duplicate value error){
echo "this value already exists";
}
else if(error equals different type error){
echo "You should enter wrong type for column blabla"
}
注意我正在使用postgresql
解决方法:
可以检索所需的标准SQLSTATE错误代码,但有一个技巧:查询必须通过异步pg_send_query()而不是同步pg_query()发送.这是因为pg_query()在出错时返回false,而不是查看错误详细信息所需的资源.
当在pg_send_query之后调用pg_get_result()时,它将一直阻塞,直到查询完成,因此与同步情况相比,它并没有真正复杂化.
它返回一个结果,可以充分利用该结果进行精确的错误处理.
例:
if (pg_send_query($db, $query)) {
$res=pg_get_result($db);
if ($res) {
$state = pg_result_error_field($res, PGsql_DIAG_sqlSTATE);
if ($state==0) {
// success
}
else {
// some error happened
if ($state=="23505") { // unique_violation
// process specific error
}
else {
// process other errors
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。