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面向对象的使用教程 简单数据库连接
Nov 25 PHP
PHP 实例化类的一点摘记
Mar 23 PHP
php htmlentities和htmlspecialchars 的区别
Aug 18 PHP
php设计模式之命令模式的应用详解
May 21 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
PHP获取数组最后一个值的2种方法
Jan 21 PHP
php实现有趣的人品测试程序实例
Jun 08 PHP
适用于初学者的简易PHP文件上传类
Oct 29 PHP
php中使用GD库做验证码
Mar 31 PHP
基于PHP实现商品成交时发送短信功能
May 11 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
在Laravel 中实现是否关注的示例
Oct 22 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操作xml
2013/10/27 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
JavaScript中的History历史对象
2008/01/16 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
React Native中TabBarIOS的简单使用方法示例
2017/10/13 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
原生js实现分页效果
2020/09/23 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
在Django的上下文中设置变量的方法
2015/07/20 Python
请不要重复犯我在学习Python和Linux系统上的错误
2016/12/12 Python
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
python使用turtle库绘制时钟
2020/03/25 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
PyQt5实现简单的计算器
2020/05/30 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
爱护公共设施的标语
2014/06/24 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
英文升职感谢信
2015/01/23 职场文书
学校德育工作总结2015
2015/05/11 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
python爬虫--selenium模块
2021/03/31 Python