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新手上路(九)
Oct 09 PHP
php cli 方式 在crotab中运行解决
Feb 08 PHP
php操作excel文件 基于phpexcel
Jul 02 PHP
preg_match_all使用心得分享
Jan 31 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
Apr 08 PHP
使用Appcan客户端自动更新PHP版本号(全)
Jul 31 PHP
PHP Mysqli 常用代码集合
Nov 12 PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
PHP依赖注入原理与用法分析
Aug 21 PHP
PHP的mysqli_set_charset()函数讲解
Jan 23 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类
2008/04/09 PHP
php echo 输出字符串函数详解
2010/05/13 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
Javascript计算时间差的函数分享
2011/07/04 Javascript
jquery插件制作教程 txtHover
2012/08/17 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
Python下载懒人图库JavaScript特效
2015/05/28 Python
python文件与目录操作实例详解
2016/02/22 Python
python调用OpenCV实现人脸识别功能
2018/05/25 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
Python 动态变量名定义与调用方法
2020/02/09 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
个性与发展自我评价
2014/02/11 职场文书
化妆师职业生涯规划书
2014/02/16 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
交警个人先进事迹材料
2014/05/11 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python