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 zlib压缩和解压缩swf文件的代码
Dec 30 PHP
PHP n个不重复的随机数生成代码
Jun 23 PHP
php多用户读写文件冲突的解决办法
Nov 06 PHP
php的declare控制符和ticks教程(附示例)
Mar 21 PHP
PHP和javascript常用正则表达式及用法实例
Jul 01 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
浅析PHP文件下载原理
Dec 25 PHP
PHP生成压缩文件实例
Feb 07 PHP
分享十款最出色的PHP安全开发库中文详细介绍
Mar 22 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
PHP入门教程之PHP操作MySQL的方法分析
Sep 11 PHP
PHP常量及变量区别原理详解
Aug 14 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文件
2007/01/04 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
yii实现级联下拉菜单的方法
2014/07/31 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
文本框的字数限制功能jquery插件
2009/11/24 Javascript
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
使用Mock.js生成前端测试数据
2020/12/13 Javascript
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
Python 调用 Windows API COM 新法
2019/08/22 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
家长会演讲稿范文
2014/01/10 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
大一学生的职业生涯规划书范文
2014/01/19 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
工伤私了协议书范本
2014/11/24 职场文书
汽车销售合同文本
2019/08/08 职场文书
解析MySQL索引的作用
2022/03/03 MySQL