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));
    echo PDO::ERRMODE_SILENT;        //默认为静默模式

PDO::ATTR_PERSISTENT:当前对Mysql服务器的连接是否是长连接

TRUE:是长连接(长连接的使用必须要配合:Apache(connection:keepAlive),Mysqld)

FALSE:默认的,非长连接

什么情况下使用长连接?

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

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

delphi Form属性设置 设置可实现窗体无最大化,并且不能拖大拖小

以下设置可实现窗体无最大化,并且不能拖大拖小BorderIcon 设为---biMax[False] biHelp [False]BorderStyle 设为---bsSingle 参考-------------- 可以通过设置窗体的属性以及编程的方法,限制和控制窗体的变化.如让窗体不能最小化.最大化.-----1.通过属性设置方法使用Form的BorderIcon属性,我们可设置窗体是否具有系统菜单(biSystemMenu).最小化按钮(biMinimize).最大化按钮(biMaximiz

JAVA学习绘图颜色及其笔画属性设置字体显示文字

package com.graphics; import java.awt.*; import java.awt.geom.Rectangle2D; import java.util.Date; import javax.swing.*; /** * * @author biexiansheng * */ public class DrawString extends JFrame{ private Shape rect;//矩形对象 private Font font;//字体对象 priva

zIndex 属性设置元素的堆叠顺序。

http://www.w3school.com.cn/jsref/prop_style_zindex.asp 该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴.如果为正数,则离用户更近,为负数则表示离用户更远. 语法: Object.style.zIndex=auto|number 可能的值 值 描述 auto 默认.堆叠顺序与父元素相等. number 设置元素的堆叠顺序. 提示和注释 注释:元素可拥有负的 z-index 属性值. 注释:Z-index 仅能在定位元素

控件属性设置

控件属性设置 XIB中设置UILabel文字居中 选中位于视图下方的Label对象,单击检视面板选择条中的Attributes Inspector图标,打开属性面板.在属性面板中找到标题为Alignment的分段控件(seg-mented control).选择中间的那个选项(居中对齐),如图所示. 改变按钮的背景颜色 在属性检视面板中向下滚动,会看到View标题下方的属性.在Background标签右侧,点击颜色面板(白色方块,上面有一条红色的斜线)可以打开颜色拾取器.

Activity 属性设置大全

activity属性设置大全 android:allowTaskReparenting=["true"|"false"] 是否允许activity更换从属的任务,比如从短信息任务切换到浏览器任务. android:alwaysRetainTaskState=["true"|"false"] 是否保留状态不变,比如切换回home,再从新打开,activity处于最后的状态 android:clearTaskOnLaunch=[&

MFC 模仿编译器属性 设置控件

1.VS 编译器 属性设置控件的实现. 完整工程下载地址: 

金蝶财务软件帐套属性设置保存和帐套启用报错的解决方法

金蝶财务软件新建立帐套,在帐套属性设置完毕保存提示如下图的提示,所以帐套也就启用不了,在启用的时候也会提示下图的错误: 查找原因的时候,一直提示"NT AUTHORITY\NETWORK SERVICE"登陆失败,就突然想到了,是不是登陆数据库的时候,默认以管理员登陆,管理员能登陆成功,是不是得把这个用户加入到管理员组才可以呢,结果就试了下,最后发现还真是这个情况,把这个用户加入管理员后,帐套启用成功.以下是用户加入管理员组的步骤,可以参考以下: 进入计算机管理 找到组 双击管理员组

js+jquery动态设置/添加/删除/获取元素属性的两种方法集锦对照(动态onclick属性设置+动态title设置)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>

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

“使用JSON JavaScriptSerializer进行序列化或反序列化时出错.字符串的长度超过了为maxJsonLength属性设置的值” 今天业务找我说线上的国家地区都显示数字(地区ID),而不显示地区名字. 当时我觉得不太可能啊,虽然控件很老,已经替换了,还没到发布日期,但是线上的代码绝对没问题啊. 等我去看页面,才懵逼了,真的有问题,但是线上master的代码在本地附加到进程完全OK. 猜想: 1.线上JS文件有改动: 2.配置文件有改动 然后开始查看Git记录发现今天并没有上传记录