mysql int 判断_PHP通过PDO查MySQL查询int字段返回string类型,解决方案

虽说PHP是弱类型的语言,但不代表没类型,乱转也是个问题,因为要进行数据比较,判断,还要和其它语言数据交互。这个问题一定要解决的。但网上的标准答案似乎没提驱动问题,此文结合作者经验详细说明。

1、PDO连接设置

如果百度搜索"php pdo查int返回string",标准答案是:

$pdo->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);

$pdo->setAttribute(\PDO::ATTR_STRINGIFY_FETCHES, false);

2、驱动问题不可忽略

PDO参数设置没毛病,但不一定管用 。个别同学反馈这样设置是无效的,刚好我本地环境也碰到了,运气就这么好。

参数无效时的php -i 相关驱动参数

4c4252c930d5

image.png

参数有效时的php -i相关驱动参数,这里要划重点!

不管怎么安装的php,pdo的驱动相关参数长这模样就可以了。

PDO

PDO support => enabled

PDO drivers => sqlite, mysql

pdo_mysql

PDO Driver for MySQL => enabled

Client API version => mysqlnd 5.0.12-dev - 20150407 - \

$Id: 38fea24f2847fa7519001be390c98ae0acafe387 $

PDO参数有效相关编译参数 -- 这是关键一步

我是习惯通过编译来安装PHP环境的,这样更可控。

正面是我编译安装的部分参数,供参考,

./configure --prefix=/usr/local/php \

--with-config-file-path=/usr/local/php/etc --enable-mysqlnd \

--with-pdo-mysql --with-mysqli=/usr/local/mysql/bin/mysql_config

另外分享一下我之前怎么设置都无效时的编译参数

这样编译安装pdo参数怎么设置都无效,int会转string:

./configure --prefix=/usr/local/php \

--with-config-file-path=/usr/local/php/etc \

--with-mysqli=mysqlnd \

--with-pdo-mysql=/usr/local/mysql/bin/mysql_config

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值