千家信息网

PHP数据库学习之如何设置与获取PDO属性

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇内容主要讲解"PHP数据库学习之如何设置与获取PDO属性",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"PHP数据库学习之如何设置与获取PDO属性"吧!
千家信息网最后更新 2025年01月18日PHP数据库学习之如何设置与获取PDO属性

本篇内容主要讲解"PHP数据库学习之如何设置与获取PDO属性",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"PHP数据库学习之如何设置与获取PDO属性"吧!

接下来就来了解一下怎样设置与获取PDO属性。在 PDO 对象中有很多属性可以用来调整 PDO 的行为或获取底层驱动程序状态。

如果在创建 PDO 对象时,没有在构造方法中最后一个参数设置过的属性选项,可以在对象创建完成以后,通过 PDO 对象中的 setAttribute()getAttribute() 方法设置和获取这些属性的值。那接下来就让我们一起来了解一下这两个方法吧。

getAttribute() 方法

getAttribute() 方法只需要提供一个参数,就能够传递一个代表这个参数的特定属性名称,执行成功后会返回该属性所指定的值,否则返回 NULL。很容易理解,它的语法格式如下:

PDO::getAttribute(int $attribute)

其中需要注意的是:

参数 $attributePDO::ATTR_* 常量中的一个,应用到数据库连接中的常量有很多,

我们先通过示例先看一下,然后在做总结,示例如下:

TRUE];    try{        $pdo = new PDO('mysql:dbname=test;host=127.0.0.1','root','root',$opt);    }catch(PDOException $e){        echo '数据库连接失败:'.$e->getMessage();        exit();    }    echo 'PDO 是否关闭自动提交功能:'.$pdo -> getAttribute(PDO::ATTR_AUTOCOMMIT);    echo '
当前 PDO 的错误处理模式:'.$pdo -> getAttribute(PDO::ATTR_ERRMODE); echo '
表字段字符的大小写转换:'.$pdo -> getAttribute(PDO::ATTR_CASE); echo '
空字符串转换为 SQL 的 null:'.$pdo -> getAttribute(PDO::ATTR_ORACLE_NULLS); echo '
应用程序提前获取数据大小:'.$pdo -> getAttribute(PDO::ATTR_PERSISTENT);?>

输出结果:

由上述结果,我们总结一下:

PDO::ATTR_AUTOCOMMIT表示的是PDO 是否关闭自动提交功能,PDO::ATTR_ERRMODE表示的是当前 PDO 的错误处理模式,PDO::ATTR_CASE表示的是表字段字符的大小写转换, PDO::ATTR_ORACLE_NULLS表示的是空字符串转换为 SQL 的 null,PDO::ATTR_PERSISTENT表示的是应用程序提前获取数据大小。

不止这些,再给大家总结一下一些常用的应用到数据库连接中的常量:

  • PDO::ATTR_CONNECTION_STATUS 表示与连接状态相关的特有信息。

  • PDO::ATTR_SERVER_INFO 表示数据库特有的服务器信息。

  • PDO::ATTR_SERVER_VERSION 表示数据库服务器版本号。

  • PDO::ATTR_CLIENT_VERSION 表示数据库客户端版本号。

了解了getAttribute() 方法,接下来我们来看一下setAttribute() 方法的相关知识,一起看看吧。

setAttribute() 方法

setAttribute() 方法可以用来设置数据库句柄的属性,setAttribute() 就比getAttribute()要稍微复杂些了,它的语法格式如下:

PDO::setAttribute(int $attribute, mixed $value)

其中我们需要注意的是:

这个方法需要两个参数,第一个参数 $attribute 提供 PDO 对象特定的属性名,第二个参数 $value 则是为这个指定的属性赋一个值。

PDO::ATTR_CASE 表示可以强制列名为指定的大小写,其中PDO::CASE_LOWER 表示强制列名小写;PDO::CASE_NATURAL 表示保留数据库驱动返回的列名;PDO::CASE_UPPER 表示强制列名大写。

PDO::ATTR_ERRMODE 表示为错误报告,其中PDO::ERRMODE_SILENT 表示为仅设置错误代码;PDO::ERRMODE_WARNING 表示为引发 E_WARNING 错误;PDO::ERRMODE_EXCEPTION 表示为抛出 exceptions 异常。

PDO::ATTR_ORACLE_NULLS 表示为在所有驱动中都可用,不仅限于Oracle,转换 NULL 和空字符串,其中PDO::NULL_NATURAL 表示为不转换;PDO::NULL_EMPTY_STRING 表示为将空字符串转换成 NULL;PDO::NULL_TO_STRING 表示为将 NULL 转换成空字符串。

接下来我们通过示例来看一下使用 setAttribute() 方法设置数据库句柄的属性,示例如下:

setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);    echo 'PDO::ATTR_CASE属性的值为:'.$pdo -> getAttribute(PDO::ATTR_CASE);    $pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);    echo '
PDO::ATTR_CASE属性的值为:'.$pdo -> getAttribute(PDO::ATTR_CASE); $pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL); echo '
PDO::ATTR_CASE属性的值为:'.$pdo -> getAttribute(PDO::ATTR_CASE);?>

输出结果:

上述示例中,便是通过使用 setAttribute() 方法设置数据库句柄的属性。接下来再给大家整理一下可用的通用属性名称和可以使用的值:

  • PDO::ATTR_STRINGIFY_FETCHES 表示提取的时候将数值转换为字符串;

  • PDO::ATTR_STATEMENT_CLASS 表示设置从 PDOStatement 派生的用户提供的语句类。不能用于持久的 PDO 实例。

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

  • PDO::ATTR_DEFAULT_FETCH_MODE 表示设置默认的提取模式。

  • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 表示使用缓冲查询,它在MySQL数据库中可用。

其中我们还需要注意的有:PDO::ATTR_TIMEOUT 表示指定超时的秒数。不同驱动之间可能会有差异,比如 SQLite 等待的时间达到此值后就会放弃获取可写锁,但其他驱动可能会将此值解释为一个连接或读取超时的间隔;

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

到此,相信大家对"PHP数据库学习之如何设置与获取PDO属性"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

属性 数据 数据库 方法 参数 驱动 语句 预处理 接下来 大小 对象 示例 空字符 错误 应用 强制 习之 句柄 字符 常量 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发是哪个公司的 成人本科软件开发能进华为吗 阜阳门店管理软件开发定制公司 数据库修改id的sql语句 湖南智慧团建软件开发系统 网络安全主题日 广厦网络技术股份公司通州驻地 瓷砖铺贴软件开发教程 滴滴软件开发北京 优质软件开发厂家现货 数据库中组合主键外键是什么意思 宁德市易搜网络技术有限公司 部队国家网络安全周 数据库的查询操作日志记录 湖南迈强网络技术有限公司 中国科技重要突破口是互联网 什么服务器bug多 简述网络安全技术的种类 网络安全挂画 无线网络技术衰减名词解释 网络安全和信息化工作主要做法 德州漳卫南网络安全 星源云池软件开发 交通行业网络安全风险有哪些 代理服务器可以先拨号 帝王三国哪个服务器最多 服务器端没有软件狗 德国5g网络安全标准 数据库改变暂估方法 网络安全工程师 公安
0