[php] pdo 查询 mysql 返回值 int 转 string 类型的问题
2017-02-10 15:54
2251 查看
前言
因为本地接口开发时,php 使用 mysqli 扩展,发现测试环境没有使用 mysqli,所以更换成了 pdo,随后对接口进行测试的时候发现,返回值的整型字段数据全都变为字符型。
查错
因为更改前没有发生这个问题,所以大致判断是 pdo 做了某些处理导致的这个问题。 其中,发现 PDO::ATTR_STRINGIFY_FETCHES(提取的时候将数值转换为字符串) PDO::ATTR_EMULATE_PREPARES(启用或禁用预处理语句的模拟) 这两个预定义之间会有一些影响,我们来做个实验验证下
实验
$pdo = new PDO($dsn, $user, $pass, $options); /* 实验1,结果 int 不转为 string */ $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false); /* 实验2,结果 int 转为 string */ $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true); /* 实验3,结果 int 转为 string */ $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); $pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true); /* 实验4,结果 int 转为 string */ $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); $pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
相关文章推荐
- pdo 查询 mysql 返回值 int 转 string 类型的问题
- PHP 查询MySql int类型返回string
- php从mysql取出int数据,变成了string,PDO,mysql,mysqlnd
- 关于php pdo连接mysql,查询超时问题
- Mysql 一个字段定义成int类型,查询时传入String,会截取字符串
- mysql php 集成问题--/usr/local/src/PDO_MYSQL-1.0.2/php_pdo_mysql_int.h:36: error: expected specifier-qua
- 详解mysql int类型的长度值问题
- 详解mysql int类型的长度值问题
- mysql 查询 int类型日期转换成datetime类型
- mysql中int数据类型长度的问题
- Php中用PDO查询Mysql来避免SQL注入风险的方法
- 关于PHP 查询 mysql 乱码问题解决方式
- SQL C# nvarchar类型转换为int类型 多表查询的问题,查询结果到新表,TXT数据读取到控件和数据库,生成在控件中的数据如何存到TXT文件中
- mysql查询大量数据,php内存占用溢出问题
- mysql 查询 int类型日期转换成datetime类型
- 安装phpwind时的问题:phpize安装php pdo_mysql
- mysql中int()字段类型长度 问题解释
- php PDO使用bindValue进行模糊查询问题
- 详解mysql int类型的长度值问题
- 创建mysql数据表时,字段的int类型长度问题