• 售前

  • 售后

热门帖子
入门百科

php PDO属性设置与操纵方法分析

[复制链接]
蓝天下的白云 显示全部楼层 发表于 2021-10-26 13:33:00 |阅读模式 打印 上一主题 下一主题
本文实例讲述了php PDO属性设置与操作方法。分享给各人供各人参考,详细如下:
设置PDO在处理数据的过程中接纳什么方式去处理
  1. PDO::setAttribute
复制代码
:设置属性
  1. PDO::getAttribute
复制代码
:获取属性
语法:
  1. 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语句是否自动执行,默认是自动提交
  1. //自动提交属性
  2. var_dump($pdo->getAttribute(PDO::ATTR_AUTOCOMMIT));  //1
  3. $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);
  4. var_dump($pdo->getAttribute(PDO::ATTR_AUTOCOMMIT)); //0
复制代码
PDO::ATTR_CASE:当pdo从结果会合获取数据的时间,如那边理对应的字段的名字
      
  • PDO::CASE_LOWER:将全部字段都小写表现  
  • PDO::CASE_UPPER:全部字段都大写表现  
  • PDO::CASE_NATURAL:本来怎么样就怎么样
  1. $pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_NATURAL);
  2. //或 $pdo->setAttribute(PDO::ATTR_CASE,1);
  3. var_dump(PDO::CASE_UPPER);   //1 转换为大写
  4. var_dump(PDO::CASE_LOWER);   //2 转换为小写
  5. var_dump(PDO::CASE_NATURAL);  //0 是怎样就是怎样
  6. $sql = "select * from user ";
  7. $stmt = $pdo->query($sql);
  8. var_dump($stmt->fetch(PDO::FETCH_ASSOC));
复制代码
PDO::ATTR_ERRMODE:错误模式,当pdo出现错误的时间到底使用哪种模式举行处理
      
  • PDO::ERRMODE_SILENT:静默模式,默认的堕落了不管  
  • PDO::ERRMODE_WARNING:告诫模式,如果堕落了就会报出告诫  
  • PDO::ERRMODE_EXCEPTION:异常模式,如果堕落会接纳异常来处理(PDOException)
  1. var_dump($pdo->getAttribute(PDO::ATTR_ERRMODE));
  2. var_dump(PDO::ERRMODE_SILENT);    //0 静默模式,默认的出错了不管
  3. var_dump(PDO::ERRMODE_WARNING);    //1 警告模式,如果出错了就会报出警告
  4. var_dump(PDO::ERRMODE_EXCEPTION);  //2 异常模式,如果出错会采用异常来处理(PDOException)
复制代码
PDO::ATTR_PERSISTENT:当前对Mysql服务器的毗连是否是长毗连
      
  • TRUE:是长毗连(长毗连的使用必须要配合:Apache(connection:keepAlive),Mysqld)  
  • FALSE:默认的,非长毗连
什么情况下使用长毗连?
差别的脚本的执行间距非常短,同时每个脚本都要操作数据库(Mysql:mysql_pconnect())
更多关于PHP相干内容感兴趣的读者可查察本站专题:《PHP基于pdo操作数据库本领总结》、《php+Oracle数据库程序设计本领总结》、《PHP+MongoDB数据库操作本领大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作本领汇总》
希望本文所述对各人PHP程序设计有所资助。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作