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的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
php的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
Jul 13 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
ThinkPHP之N方法实例详解
Jun 20 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
php实现的click captcha点击验证码类实例
Sep 23 PHP
linux中cd命令使用详解
Jan 08 PHP
php自定义urlencode,urldecode函数实例
Mar 24 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
Feb 17 PHP
Laravel用户授权系统的使用方法示例
Sep 16 PHP
Laravel 5+ .env环境配置文件详解
Apr 06 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数组生成html下拉列表的方法
2015/07/20 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
php更新cookie内容的详细方法
2019/09/30 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
JavaScript DOM进阶方法
2015/04/13 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
用Python中的字典来处理索引统计的方法
2015/05/05 Python
Python list操作用法总结
2015/11/10 Python
Python实现在线音乐播放器
2017/03/03 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
python之django母板页面的使用
2018/07/03 Python
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
小型女装店的创业计划书
2014/01/09 职场文书
安全生产管理责任书
2014/04/16 职场文书
家长高考寄语
2015/02/27 职场文书