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 相关文章推荐
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
Apr 28 PHP
使用Discuz关键词服务器实现PHP中文分词
Mar 11 PHP
小谈php正则提取图片地址
Mar 27 PHP
php+mysql数据库查询实例
Jan 21 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 PHP
PHP PDO操作MySQL基础教程
Jun 05 PHP
php之可变函数的实例详解
Sep 13 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
php微信公众号开发之微信企业付款给个人
Oct 04 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
Oct 17 PHP
PHP7引入的&quot;??&quot;和&quot;?:&quot;的区别讲解
Apr 08 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
如何冲泡挂耳包咖啡?技巧是什么
2021/03/04 冲泡冲煮
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
PHP 实现缩略图
2021/03/09 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
前端开发之CSS原理详解
2017/03/11 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
对python:print打印时加u的含义详解
2018/12/15 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
2020/05/03 Python
python爬虫用mongodb的理由
2020/07/28 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
Eyeko美国:屡获殊荣的睫毛膏、眼线笔和眉妆
2018/07/05 全球购物
物业消防安全责任书
2014/07/23 职场文书
学用政策心得体会
2014/09/10 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
电力安全学习心得体会
2016/01/18 职场文书
2016年全国爱眼日宣传教育活动总结
2016/04/05 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
德生BCL3000抢先使用感受和评价
2022/04/07 无线电