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实现WEB动态网页静态
Oct 09 PHP
PHP编程与应用
Oct 09 PHP
PHP中的session永不过期的解决思路及实现方法分享
Apr 20 PHP
php使用ereg验证文件上传的方法
Dec 16 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
Oct 09 PHP
PHP Cookei记录用户历史浏览信息的代码
Feb 03 PHP
apache集成php7.3.5的详细步骤
Jun 20 PHP
Laravel 连接(Join)示例
Oct 16 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 PHP
laravel框架实现敏感词汇过滤功能示例
Feb 15 PHP
YII2框架中添加自定义模块的方法实例分析
Mar 18 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的宝库目录--PEAR
2006/10/09 PHP
PHP生成excel时单元格内换行问题的解决方法
2010/08/26 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
php实现查询功能(数据访问)
2017/05/23 PHP
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
javascript中的作用域scope介绍
2010/12/28 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
浅谈Angular单元测试总结
2019/03/22 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
跟老齐学Python之玩转字符串(1)
2014/09/14 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Python模块结构与布局操作方法实例分析
2017/07/24 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
工程地质勘察专业大学生求职信
2013/10/13 职场文书
科级干部考察材料
2014/02/15 职场文书
教学个人的自我评价分享
2014/02/16 职场文书
《社戏》教学反思
2014/04/15 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
勤俭节约主题班会
2015/08/13 职场文书