设置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)); //
$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);
var_dump($pdo->getAttribute(PDO::ATTR_AUTOCOMMIT)); //

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:默认的,非长连接

什么情况下使用长连接?

  1. 不同的脚本的执行间距非常短,同时每个脚本都要操作数据库(Mysql:mysql_pconnect())

php -- PDO属性设置的更多相关文章

  1. WinForm------DateEdit属性设置

    1.只能选择年份属性设置                       

  2. Composer Player 属性设置

    /// <summary> /// 设置选中名称 /// </summary> /// <param name="name"></para ...

  3. table中bordercolor属性设置后最新ie浏览器或firefox中不显示边线,借助table的css来实现边线

    table中的bordercolor属性设置后在最新的ie或者firefox中均不显示边线,table的边线又是常用功能.只能使用css来实现了,更通用,更方便一些. css: ​.ctable{ b ...

  4. .net 使用Json(),maxJsonLength属性设置的值问题

    “使用JSON JavaScriptSerializer进行序列化或反序列化时出错.字符串的长度超过了为maxJsonLength属性设置的值” 今天业务找我说线上的国家地区都显示数字(地区ID),而 ...

  5. DEV控件:gridControl常用属性设置(转载)

    特别长,先撸下来再说 1.隐藏最上面的GroupPanel  gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值  sValue=T ...

  6. Appium学习实践(二)Python简单脚本以及元素的属性设置

    1.简单的Python脚本 Appium中的设置与Appium学习实践(一)简易运行Appium中的一致 Launch后,执行脚本 #coding:utf-8 import unittest impo ...

  7. DEV控件:gridControl常用属性设置

    1.隐藏最上面的GroupPanel  gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值  sValue=Table.Rows[g ...

  8. [转]浅谈jQuery EasyUI的属性设置

    原文地址:http://www.easyui.info/archives/1664.html 对jQuery EasyUI有一定了解的话,应该知道基本上每一个组件都有一个"options&q ...

  9. DEV控件GridControl常用属性设置

    1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView.Ad ...

随机推荐

  1. 【转】DNS查询过程

    DNS查询过程 DNS的查询过程是指在客户端通过DNS服务器将一个IP地址转换为一个FQDN(Fully Qualified Domain Name,完全合格的域名),或将一个FQDN转化为一个IP地 ...

  2. javascript 闭包 通俗解释

    代码段 function foo(){ var a = 2; function bar(){ console.log(a); } return bar; } var baz = foo(); baz( ...

  3. 【CentOS6.5】安装nginx报错:No package nginx available. Error: Nothing to do

    今天在给centos6.5安装nginx时候,提示报错No package nginx available. Error: Nothing to do, 后来百度一下,说缺少EPEL(epel是社区强 ...

  4. laravel使用的模板引擎 blade

    使用blade引擎的话必须在控制器中使用use   Blade

  5. RBAC权限设计实例(转)

    实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台 ...

  6. Android中的Layout_weight终极研究

    以前在做UI布局时,也经常用Layout_weight属性,有时会遇到莫名其妙的布局问题,但总没研究懂.一直想做深入分析,但总是没耐心.遇到问题就找替代方法解决,但终非长久之计.这次下决心给它弄透! ...

  7. quartusii开发过程中路径不能出现空格或中文

    quartusii开发过程中路径不能出现空格或中文,否则软件出现.stf文件错误提示,开发环境搭建的时候也不能出现空格和中文,否则也会报错.

  8. Win10 环境安装tesseract-ocr 4.00并配置环境变量

    Tesseract-OCR的Training简明教程 https://blog.csdn.net/blueheart20/article/details/53207176 一.安装: 选择对应版本,h ...

  9. sysbench的安装详解

    sysbench是一个压力测试工具.可以用它来测试cpu.mem.disk.thread.mysql.postgr.oracle:然而作为一个mysql dba 我当然是用它来压测mysql啦! 一. ...

  10. hdu 2987最大权闭合图模板类型题

    /* 最大权闭合图模板类型的题,考验对知识概念的理解. 题意:如今要辞退一部分员工.辞退每个员工能够的到一部分利益(能够是负的),而且辞退员工,必须辞退他的下属.求最大利益和辞退的最小人数. 最大权闭 ...