zoukankan      html  css  js  c++  java
  • 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:默认的,非长连接

    什么情况下使用长连接?

    1. 不同的脚本的执行间距非常短,同时每个脚本都要操作数据库(Mysql:mysql_pconnect())
  • 相关阅读:
    Oracle中有大量的sniped会话
    Error 1130: Host '127.0.0.1' is not allowed to connect to this MySQL server
    汉字转换为拼音以及缩写(javascript)
    高效率随机删除数据(不重复)
    vs2010 舒服背景 优雅字体 配置
    mvc中的ViewData用到webfrom中去
    jquery ajax return值 没有返回 的解决方法
    zShowBox (图片放大展示jquery版 兼容性好)
    动感效果的TAB选项卡 jquery 插件
    loading 加载提示······
  • 原文地址:https://www.cnblogs.com/hf8051/p/4673030.html
Copyright © 2011-2022 走看看