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&&mysql)三
Oct 09 PHP
超强分页类2.0发布,支持自定义风格,默认4种显示模式
Jan 02 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
Jan 10 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
浅析php header 跳转
Jun 17 PHP
PHP提高编程效率的20个要点
Sep 23 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
php简单统计中文个数的方法
Sep 30 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
PHP 图片处理
Sep 16 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 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
AM/FM收音机的安装与调试
2021/03/02 无线电
在PHP中执行系统外部命令
2006/10/09 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
PHP实现基于文本的摩斯电码生成器
2016/01/11 PHP
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
js实现开关灯效果
2020/03/30 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
python妙用之编码的转换详解
2017/04/21 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
python检索特定内容的文本文件实例
2018/06/05 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
余弦相似性计算及python代码实现过程解析
2019/09/18 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
团结就是力量演讲稿
2014/05/21 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
校园广播站开场白
2015/06/01 职场文书
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android