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 相关文章推荐
建立动态的WML站点(三)
Oct 09 PHP
PHP中用header图片地址 简单隐藏图片源地址
Apr 09 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
Oct 25 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
选择PHP作为网站开发语言的原因分享
Jan 03 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
Jun 18 PHP
php实现的mongodb操作类实例
Apr 03 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
Jan 05 PHP
PHP魔术方法使用方法汇总
Feb 14 PHP
使用ltrace工具跟踪PHP库函数调用的方法
Apr 25 PHP
Smarty模板引擎缓存机制详解
May 23 PHP
PHP实现简单ajax Loading加载功能示例
Dec 28 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通过COM使用ADODB的简单例子
2006/12/31 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
JS解析XML实例分析
2015/01/30 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
Python字节单位转换实例
2019/12/05 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
什么是抽象
2015/12/13 面试题
Structs界面控制层技术
2013/10/11 面试题
技术人员面试提纲
2013/11/28 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
实训报告范文大全
2014/11/04 职场文书
五年级小学生评语
2014/12/26 职场文书
高中教师个人工作总结
2015/02/10 职场文书
幼儿园教师求职信
2015/03/20 职场文书
工会文体活动总结
2015/05/07 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书