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
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
leo
最佳答案
6年前 评论
yykpf (楼主) 6年前
Bolt 4年前
讨论数量: 14
leo
6年前 评论
yykpf (楼主) 6年前
Bolt 4年前
ALMAS

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

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

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

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

解决了没

4年前 评论
xiaoMaoLv 3年前
FC6666 1年前

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

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

2年前 评论

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