PHP的PDO连接讲解


Posted in PHP onJanuary 24, 2019

PHP PDO连接

连接是通过创建 PDO 基类的实例而建立的。不管使用哪种驱动程序,都是用 PDO 类名。

连接到 MySQL

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

注意:如果有任何连接错误,将抛出一个 PDOException 异常对象。

处理连接错误

<?php
try {
  $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
  foreach($dbh->query('SELECT * from FOO') as $row) {
    print_r($row);
  }
  $dbh = null;
} catch (PDOException $e) {
  print "Error!: " . $e->getMessage() . "<br/>";
  die();
}
?>

连接数据成功后,返回一个 PDO 类的实例给脚本,此连接在 PDO 对象的生存周期中保持活动。

要想关闭连接,需要销毁对象以确保所有剩余到它的引用都被删除,可以赋一个 NULL 值给对象变量。

如果不这么做,PHP 在脚本结束时会自动关闭连接。

关闭一个连接:

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// 在此使用连接
// 现在运行完成,在此关闭连接
$dbh = null;
?>

很多 web 应用程序通过使用到数据库服务的持久连接获得好处。

持久连接在脚本结束后不会被关闭,且被缓存,当另一个使用相同凭证的脚本连接请求时被重用。

持久连接缓存可以避免每次脚本需要与数据库回话时建立一个新连接的开销,从而让 web 应用程序更快。

持久化连接

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
  PDO::ATTR_PERSISTENT => true
));
?>

注意:如果想使用持久连接,必须在传递给 PDO 构造函数的驱动选项数组中设置 PDO::ATTR_PERSISTENT 。如果是在对象初始化之后用 PDO::setAttribute() 设置此属性,则驱动程序将不会使用持久连接。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
php部分常见问题总结
Mar 27 PHP
php 中文处理函数集合
Aug 27 PHP
深入apache配置文件httpd.conf的部分参数说明
Jun 28 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
Mar 14 PHP
php中实现记住密码下次自动登录的例子
Nov 06 PHP
php和editplus正则表达式去除空白行
Apr 17 PHP
yii2实现根据时间搜索的方法
May 25 PHP
thinkphp实现分页显示功能
Dec 03 PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 PHP
PhpStorm本地断点调试的方法步骤
May 21 PHP
PHP面向对象程序设计重载(overloading)操作详解
Jun 13 PHP
PHP批斗大会之缺失的异常详解
Jul 09 PHP
PHP的PDO预定义常量讲解
Jan 24 #PHP
PHP的mysqli_thread_id()函数讲解
Jan 24 #PHP
PHP的mysqli_stmt_init()函数讲解
Jan 24 #PHP
详解php伪造Referer请求反盗链资源
Jan 24 #PHP
PHP的mysqli_stat()函数讲解
Jan 23 #PHP
PHP的mysqli_ssl_set()函数讲解
Jan 23 #PHP
PHP的mysqli_sqlstate()函数讲解
Jan 23 #PHP
You might like
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
php实现数字补零的方法总结
2018/09/12 PHP
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
2017/01/06 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
Python 数据结构之旋转链表
2017/02/25 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
Python叠加矩形框图层2种方法及效果
2020/06/18 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
C语言中break与continue的区别
2012/07/12 面试题
解释一下钝化(Swap out)
2016/12/26 面试题
同学聚会欢迎辞
2014/01/14 职场文书
行政文秘岗位职责范本
2014/02/10 职场文书
专业技术职务聘任书
2014/03/29 职场文书
家庭教育的心得体会
2014/09/01 职场文书
工作服管理制度范本
2015/08/06 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书