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 相关文章推荐
vBulletin HACK----关于排版的两个HACK
Oct 09 PHP
使用eAccelerator加密PHP程序
Oct 03 PHP
PHP分页显示制作详细讲解
Nov 19 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
Jan 20 PHP
使用HMAC-SHA1签名方法详解
Jun 26 PHP
PHP中Session可能会引起并发问题
Jun 26 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
Dec 24 PHP
php封装的单文件(图片)上传类完整实例
Oct 18 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 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
PHP通用检测函数集合
2011/02/08 PHP
ThinkPHP登录功能的实现方法
2014/08/20 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
JavaScript里 ==与===区别详解
2016/08/16 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
vue v-model动态生成详解
2018/06/30 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
Javascript基于OOP实实现探测器功能代码实例
2020/08/26 Javascript
在Python中利用Into包整洁地进行数据迁移的教程
2015/03/30 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
python实现按首字母分类查找功能
2019/10/31 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
Python通过4种方式实现进程数据通信
2020/03/12 Python
Python ATM功能实现代码实例
2020/03/19 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
金融专业个人求职信
2013/09/22 职场文书
项目总经理岗位职责
2014/02/14 职场文书
美术教师岗位职责
2014/03/18 职场文书
大学学习计划书范文
2014/05/02 职场文书
会计学专业求职信
2014/07/17 职场文书
销售人员求职信
2014/07/22 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python