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入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
Jul 14 PHP
php比较多维数组中值的大小排序实现代码
Sep 08 PHP
php另类上传图片的方法(PHP用Socket上传图片)
Oct 30 PHP
PHP过滤★等特殊符号的正则
Jan 27 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
33道php常见面试题及答案
Jul 06 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
PHP读MYSQL中文乱码的快速解决方法
Oct 01 PHP
php基于SQLite实现的分页功能示例
Jun 21 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 PHP
php和redis实现秒杀活动的流程
Jul 17 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
Oct 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中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
PHP判断函数是否被定义的方法
2019/06/21 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
Python OS模块常用函数说明
2015/05/23 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
Python 如何展开嵌套的序列
2020/08/01 Python
python爬虫基础之urllib的使用
2020/12/31 Python
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
致裁判员加油稿
2014/02/08 职场文书
运动会口号大全
2014/06/07 职场文书
学校实习推荐信
2015/03/27 职场文书
教师节主持词开场白
2015/05/29 职场文书
2019数学教师下学期工作总结
2019/06/27 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
日元符号 ¥
2022/02/17 杂记
uniapp引入支付宝原生扫码插件步骤详解
2022/07/23 Javascript