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+MySQL5.0中文乱码解决方法
Nov 20 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
Oct 15 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
Jun 28 PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 PHP
PHP使用递归生成文章树
Apr 21 PHP
php实现多维数组排序的方法示例
Mar 23 PHP
PHP简单实现遍历目录下特定文件的方法小结
May 22 PHP
PHP实现通过文本文件统计页面访问量功能示例
Feb 13 PHP
php实现登录页面的简单实例
Sep 29 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
May 02 PHP
如何在PHP中生成随机数
Jun 04 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
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
php file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
基于php使用memcache存储session的详解
2013/06/25 PHP
爱恋千雪-US-AscII加密解密工具(网页加密)下载
2007/06/06 Javascript
慎用 somefunction.prototype 分析
2009/06/02 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
Javascript基础回顾之(一) 类型
2017/01/31 Javascript
JS创建Tag标签的方法详解
2017/06/09 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
JS数组属性去重并校验重复数据
2020/01/10 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
python的re模块应用实例
2014/09/26 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
详解Python中的分支和循环结构
2020/02/11 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
Java基础知识面试题
2014/03/25 面试题
巡警年度自我鉴定
2014/02/21 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
少儿励志名言(80句)
2019/08/14 职场文书