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和ACCESS写聊天室(二)
Oct 09 PHP
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
Apr 18 PHP
PHP 文章中的远程图片采集到本地的代码
Jul 30 PHP
php中设置多级目录session的问题
Aug 08 PHP
php 网上商城促销设计实例代码
Feb 17 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
浅析php中抽象类和接口的概念以及区别
Jun 27 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
May 19 PHP
thinkPHP实现的省市区三级联动功能示例
May 05 PHP
PHP使用数组实现矩阵数学运算的方法示例
May 29 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 PHP
浅谈PHPANALYSIS提取关键字
Mar 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
CI(CodeIgniter)框架配置
2014/06/10 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
详解Chart.js轻量级图表库的使用经验
2018/05/22 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
从零学python系列之从文件读取和保存数据
2014/05/23 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
python+logging+yaml实现日志分割
2019/07/22 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
Django实现简单的分页功能
2021/02/22 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
副总经理岗位职责
2014/03/16 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
机关作风建设整改方案
2014/10/27 职场文书
逃课检讨书范文
2015/05/06 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python
php去除数组中为0的元素的实例分析
2021/11/17 PHP
python周期任务调度工具Schedule使用详解
2021/11/23 Python