我目前已切换到使用PDO但在处理异常时遇到问题.连接是正确的,查询工作完美,但是当我故意犯错时,错误没有按照我的预期处理.
我已将查询中的表名更改为不存在的表.从下面的代码中,我希望页面打印出"数据库错误",但是却得到了可怕的橙色错误,说...
'消息异常'PDOException',消息'SQLSTATE [42S02]:未找到基表或视图:1146表'test.post'不存在'在第46行的C:\ wamp\www\website\functions.php'
这是连接数据库时的代码......
$hostname = 'localhost';
$username = '';
$password = '';
try{
$dbh = new PDO("mysql:host=$hostname;dbname=test", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
print ("Database Error");
}
Run Code Online (Sandbox Code Playgroud)
我犯了错误还是有不同的方法来处理PDO错误?
连接后,您需要设置错误处理:
$dbh = new PDO("mysql:host=$hostname;dbname=test", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,异常会在抛出的位置被捕获,因此您需要try
catch
在查询周围放置一个块,您在连接时使用的块仅捕获异常(如果有的话,请参阅@Crontab的注释).
归档时间: |
|
查看次数: |
2667 次 |
最近记录: |