try {
$pdo=new PDO($dsn, $db_user, $db_pwd);
$sql=$pdo->Query('select id,username from users2'); //users2表不存在,为了制造错误
......
}
catch (Exception $e) {
die('数据库连接或查询失败');
}
这样一段很简单的代码,为什么try{}内部仅能捕获到pdo对象创建失败的错误,而捕获不到users2表不存在的错误?
我知道用$pdo->errorCode()可以获取pdo的错误信息,但这样的话,如果我还必须每条语句都用if(!$)来设置一下错误陷阱?那多麻烦啊?
php手机上说用try{}可以捕获到pdo的查询错误,其实根本不是啊。
我个人觉得如果不加的话,mysql全遍历全表去找id是否还有=10的记录,是不是这样?