php – 如何使用try-catch块进行PDO
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何使用try-catch块进行PDO,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1785字,纯文字阅读大概需要3分钟。
内容图文
![php – 如何使用try-catch块进行PDO](/upload/InfoBanner/zyjiaocheng/752/72617c6f62db4bb6a46ddf884a2aff71.jpg)
使用try catch块时,处理PDO错误的好方法是什么?
目前我有这样的事情:
BlogModel.php
class BlogModel extends Model {
public function save($id, $value) {
$stmt = $this->getDb()->prepare('UPDATE setting SET name = :name WHERE id = :id');
$stmt->bindParam(':id', $id);
$stmt->bindParam(':name', $values);
return ($stmt->execute() !== false) ? $id : false;
}
}
所以,在控制器BlogController.php中,我会做这样的事情:
<?php
class Blog extends Controller {
public function comments()
{
$data = array();
$model = new BlogModel;
if ($model->save(2,'test')) {
$data['result']['message'] = 'Settings saved';
$data['result']['status'] = 'success';
} else {
$data['result']['message'] = 'Could not save the settings';
$data['result']['status'] = 'error';
}
$view = new View("view.php", $data)
$view->render();
}
}
?>
这是我使用if条件处理PDO错误的方法.将此转换为try catch块的正确方法是什么?我不想一直编码变量($data [‘result’] [‘message’] $data [‘result’] [‘status’]).
有可能以某种方式在catch块中添加“抛出异常”吗?
如果控制器中有很多try catch块,它看起来会很乱……对吗?
解决方法:
这里的答案都没有错.但实际上所有三个组合都是真正的答案.
你一定要设置
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
正如塞拉德所说.
从现在开始,关于数据库的任何问题都会通过PDOException类型的异常抛出.你不必像Ladar所说的那样抛出你自己的异常,因为它没用.只需拿出ladar代码并将其转换为
...
$data = array();
$model = new BlogModel;
try{
$model->save(2,'test');
$data['result']['message'] = 'Settings saved';
$data['result']['status'] = 'success';
}catch(PDOException $e){
$data['result']['message'] = 'Could not save the settings';
$data['result']['status'] = 'error';
}
不要自己扔任何东西.
然后,调试PDO查询的一个非常好的方法是使用Basic链接的catch脚本,您可以再次找到here.
结合这些东西,你将有一个灵活,干净,易于调试的方式来捕捉可能出现的所有错误.
内容总结
以上是互联网集市为您收集整理的php – 如何使用try-catch块进行PDO全部内容,希望文章能够帮你解决php – 如何使用try-catch块进行PDO所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。