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 相关文章推荐
用cookies来跟踪识别用户
Oct 09 PHP
phpwind中的数据库操作类
Jan 02 PHP
php5新改动之短标记启用方法
Sep 11 PHP
php mssql 分页SQL语句优化 持续影响
Apr 26 PHP
解析zend studio中直接导入svn中的项目的方法步骤
Jun 21 PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
May 12 PHP
深入理解PHP之源码目录结构与功能说明
Jun 01 PHP
PHP错误和异常处理功能模块示例
Nov 12 PHP
基于php数组中的索引数组和关联数组详解
Mar 12 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
Mar 11 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 裁剪图片成固定大小代码方法
2009/09/09 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
一个判断抢购时间是否到达的简单的js函数
2014/06/23 Javascript
微信小程序 出现错误:{&quot;baseresponse&quot;:{&quot;errcode&quot;:-80002,&quot;errmsg&quot;:&quot;&quot;}}解决办法
2017/02/23 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
jquery实现的分页显示功能示例
2019/08/23 jQuery
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Python算法应用实战之队列详解
2017/02/04 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
django的autoreload机制实现
2020/06/03 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
大学校园活动策划书
2014/02/04 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
文明单位申报材料
2014/12/23 职场文书
升学宴祝酒词
2015/08/11 职场文书
初中团支书竞选稿
2015/11/21 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
SpringBoot Http远程调用的方法
2022/08/14 Java/Android