博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php -- PDO属性设置
阅读量:7143 次
发布时间:2019-06-29

本文共 2541 字,大约阅读时间需要 8 分钟。

设置PDO在处理数据的过程中采用什么方式去处理

PDO::setAttribute:设置属性

PDO::getAttribute:获取属性

 

语法:

bool PDO::setAttribute ( int $attribute , $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: 引发 错误

  PDO::ERRMODE_EXCEPTION: 抛出 异常。

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  .

 

PDO::ATTR_STATEMENT_CLASS: 设置从PDOStatement派生的用户提供的语句类。 不能用于持久的PDO实例。 需要 array(string 类名, array(mixed 构造函数的参数))

 

PDO::ATTR_TIMEOUT: 指定超时的秒数。并非所有驱动都支持此选项,这意味着驱动和驱动之间可能会有差异。比如,SQLite等待的时间达到此值后就放弃获取可写锁,但其他驱动可能会将此值解释为一个连接或读取超时的间隔。 需要 类型。

PDO::ATTR_AUTOCOMMIT (在OCI,Firebird 以及 MySQL中可用): 是否自动提交每个单独的语句。

 

PDO::ATTR_EMULATE_PREPARES 启用或禁用预处理语句的模拟。 有些驱动不支持或有限度地支持本地预处理。使用此设置强制PDO总是模拟预处理语句(如果为 TRUE ),或试着使用本地预处理语句(如果为 FALSE )。如果驱动不能成功预处理当前查询,它将总是回到模拟预处理语句上。 需要 类型。

 

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (在MySQL中可用): 使用缓冲查询。

 

PDO::ATTR_DEFAULT_FETCH_MODE: 设置默认的提取模式。关于模式的说明可以在 文档找到。 

 

常用属性

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

什么情况下使用长连接?

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

 

转载地址:http://itgrl.baihongyu.com/

你可能感兴趣的文章
xshell 秘钥配对
查看>>
saltstack之SLS文件
查看>>
Redhat linux下cvs的安装配置
查看>>
增量备份和差异备份的区别
查看>>
纯JS操作获取桌面路径方法
查看>>
thinkphp数据库添加表单提交的数据
查看>>
反编译工具jad简单用法
查看>>
无法获取网关MAC地址表/radware备机流量——在不断的应急中提高
查看>>
关于CentOS/RHEL 7.x的yum组安装错误的解决方案
查看>>
通过PowerShell轻松转换VHD文件到VHDX格式
查看>>
OLTP应用之MySQL架构选型
查看>>
[Unity插件]LitJson杂谈
查看>>
调节effective_io_concurrenc优化PostgreSQL bitmap index scan性能
查看>>
MySQL体系结构笔记
查看>>
linux常用syslog日志知识
查看>>
VMware试验问题总结
查看>>
说说Micorsoft集群原理
查看>>
Android开发者指南(18) —— Web Apps Overview
查看>>
仿CSDN客户端首页(二)----拖拽排序Tabs的实现
查看>>
openstack 虚拟机导出
查看>>