php PDO属性设置与操作方法分析


Posted in PHP onDecember 27, 2018

本文实例讲述了php PDO属性设置与操作方法。分享给大家供大家参考,具体如下:

设置PDO在处理数据的过程中采用什么方式去处理

PDO::setAttribute:设置属性

PDO::getAttribute:获取属性

语法:

bool PDO::setAttribute ( int $attribute , mixed $value )

设置数据库句柄属性。下面列出了一些可用的通用属性;有些驱动可能使用另外的特定属性。

参数

$attribute

PDO::ATTR_CASE:强制列名为指定的大小写。他的$value可为:

  • PDO::CASE_LOWER:强制列名小写。
  • PDO::CASE_NATURAL:保留数据库驱动返回的列名。
  • PDO::CASE_UPPER:强制列名大写。

PDO::ATTR_ERRMODE:错误报告。他的$value可为:

  • PDO::ERRMODE_SILENT: 仅设置错误代码。
  • PDO::ERRMODE_WARNING: 引发 E_WARNING 错误
  • PDO::ERRMODE_EXCEPTION: 抛出 exceptions 异常。

PDO::ATTR_ORACLE_NULLS (在所有驱动中都可用,不仅限于Oracle): 转换 NULL 和空字符串。他的$value可为:

PDO::NULL_NATURAL: 不转换。

PDO::NULL_EMPTY_STRING: 将空字符串转换成 NULL 。

PDO::NULL_TO_STRING: 将 NULL 转换成空字符串。

PDO::ATTR_STRINGIFY_FETCHES: 提取的时候将数值转换为字符串。 Requires bool .

PDO::ATTR_STATEMENT_CLASS: 设置从PDOStatement派生的用户提供的语句类。 不能用于持久的PDO实例。 需要 array(string 类名, array(mixed 构造函数的参数))。

PDO::ATTR_TIMEOUT: 指定超时的秒数。并非所有驱动都支持此选项,这意味着驱动和驱动之间可能会有差异。比如,SQLite等待的时间达到此值后就放弃获取可写锁,但其他驱动可能会将此值解释为一个连接或读取超时的间隔。 需要 int 类型。

PDO::ATTR_AUTOCOMMIT (在OCI,Firebird 以及 MySQL中可用): 是否自动提交每个单独的语句。

PDO::ATTR_EMULATE_PREPARES 启用或禁用预处理语句的模拟。 有些驱动不支持或有限度地支持本地预处理。使用此设置强制PDO总是模拟预处理语句(如果为 TRUE ),或试着使用本地预处理语句(如果为 FALSE )。如果驱动不能成功预处理当前查询,它将总是回到模拟预处理语句上。 需要 bool 类型。

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (在MySQL中可用): 使用缓冲查询。

PDO::ATTR_DEFAULT_FETCH_MODE: 设置默认的提取模式。关于模式的说明可以在 PDOStatement::fetch() 文档找到。

常用属性

PDO::ATTR_AUTOCOMMIT:设置当前连接Mysql服务器的客户端的SQL语句是否自动执行,默认是自动提交

//自动提交属性
var_dump($pdo->getAttribute(PDO::ATTR_AUTOCOMMIT));  //1
$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);
var_dump($pdo->getAttribute(PDO::ATTR_AUTOCOMMIT)); //0

PDO::ATTR_CASE:当pdo从结果集中获取数据的时候,如何处理对应的字段的名字

  • PDO::CASE_LOWER:将所有字段都小写显示
  • PDO::CASE_UPPER:所有字段都大写显示
  • PDO::CASE_NATURAL:原本怎么样就怎么样
$pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_NATURAL);
//或 $pdo->setAttribute(PDO::ATTR_CASE,1);
var_dump(PDO::CASE_UPPER);   //1 转换为大写
var_dump(PDO::CASE_LOWER);   //2 转换为小写
var_dump(PDO::CASE_NATURAL);  //0 是怎样就是怎样
$sql = "select * from user ";
$stmt = $pdo->query($sql);
var_dump($stmt->fetch(PDO::FETCH_ASSOC));

PDO::ATTR_ERRMODE:错误模式,当pdo出现错误的时候到底使用哪种模式进行处理

  • PDO::ERRMODE_SILENT:静默模式,默认的出错了不管
  • PDO::ERRMODE_WARNING:警告模式,如果出错了就会报出警告
  • PDO::ERRMODE_EXCEPTION:异常模式,如果出错会采用异常来处理(PDOException)
var_dump($pdo->getAttribute(PDO::ATTR_ERRMODE));
var_dump(PDO::ERRMODE_SILENT);    //0 静默模式,默认的出错了不管
var_dump(PDO::ERRMODE_WARNING);    //1 警告模式,如果出错了就会报出警告
var_dump(PDO::ERRMODE_EXCEPTION);  //2 异常模式,如果出错会采用异常来处理(PDOException)

PDO::ATTR_PERSISTENT:当前对Mysql服务器的连接是否是长连接

  • TRUE:是长连接(长连接的使用必须要配合:Apache(connection:keepAlive),Mysqld)
  • FALSE:默认的,非长连接

什么情况下使用长连接?

不同的脚本的执行间距非常短,同时每个脚本都要操作数据库(Mysql:mysql_pconnect())

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php adodb介绍
Mar 19 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
Jun 23 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
Dec 21 PHP
php导出word格式数据的代码实例
Nov 25 PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
Dec 15 PHP
php实现curl模拟ftp上传的方法
Jul 29 PHP
Symfony2中被遗弃的getRequest()方法分析
Mar 17 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
php事务回滚简单实现方法示例
Mar 28 PHP
php读取本地json文件的实例
Mar 07 PHP
php实现的PDO异常处理操作分析
Dec 27 #PHP
CI框架网页缓存简单用法分析
Dec 26 #PHP
CI框架附属类用法分析
Dec 26 #PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 26 #PHP
CI框架实现创建自定义类库的方法
Dec 25 #PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 #PHP
PHP使用SOAP调用API操作示例
Dec 25 #PHP
You might like
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP统计当前在线用户数实例讲解
2015/10/21 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
理清apply(),call()的区别和关系
2011/08/14 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
Vue实现跑马灯效果
2020/05/25 Javascript
python实现决策树
2017/12/21 Python
python3实现用turtle模块画一棵随机樱花树
2019/11/21 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
小学开学典礼主持词
2014/03/19 职场文书
安全生产月活动总结
2014/05/04 职场文书
运动会拉拉队口号
2014/06/09 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript