MySQL 配置属性 (ATTR_EMULATE_PREPARES 为 true) 整型转字符串所遇问题

使用 sharding-proxy-3.1.0 数据库中间件坐mysql代理:
在laravel5.6和php7.2环境中配置 config/databases.php文件的 mysql选项如下:

            'options'  => [
                PDO::ATTR_EMULATE_PREPARES => false,
            ]

报错:
Packets out of order. Expected 1 received 27...

如果把以上配置改为如下:

            'options'  => [
                PDO::ATTR_EMULATE_PREPARES => true,// 模拟预处理语句
            ]

可以解决报错问题,但是查询出来的数据会把整型转成字符串,请问在laravel中如何同时解决这两个问题:
1、使用 sharding-proxy-3.1.0 中间件不报错
2、查询数据类型保持不变

yykpf
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
leo
最佳答案
4年前 评论
yykpf (楼主) 4年前
Bolt 3年前
讨论数量: 14
leo
4年前 评论
yykpf (楼主) 4年前
Bolt 3年前
ALMAS

缺少扩展 mysqlnd 也会引起整型转字符串

4年前 评论
lovecn 4年前
yykpf (楼主) 4年前

我也碰到这个问题了,楼主你最后怎么解决的?

3年前 评论
xiaoMaoLv 1年前
JerryBool (作者) 1年前
xiaoMaoLv 1年前

解决了没

3年前 评论
xiaoMaoLv 1年前
FC6666 2个月前

PDO::ATTR_EMULATE_PREPARES => false 为什么设置false?

我通过pt-query-digest分析mysql的show.log日志时,发现很多administrator command: Prepare。好像是预处理相关的问题,还未解决 :joy:

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!