由于某些原因,我们托管服务器上的pdo_mysql PHP扩展无法运行使用MySQL View 的查询,并显示此错误消息。
(有关Bug #42041 Prepared-Statement fails when MySQL-Server under load的讨论,以及有关堆栈溢出的许多问题。)
由于某种原因,如果我们切换到使用nd_pdo_mysql扩展名(用于MySQL native 驱动程序(mysqlnd)),则使用 View 的查询运行得很好。
pdo_mysql和nd_pdo_mysql有什么区别?为什么要选择一个而不是另一个?
谢谢。
最佳答案
要从PHP连接到MySQL服务器,有两种版本的驱动程序:
mysqlnd
libmysql
为了使用
mysqlnd
驱动程序连接到MySQL服务器,请使用nd_pdo_mysql
扩展名,如下面的屏幕快照所示。由于
libmysql
以字符串形式返回数字类型,因此我将mysqlnd
与nd_pdo_mysql
一起使用以获取 native /严格数据,因此数字类型为而不是作为字符串返回。从MySQL官方网站:
https://dev.mysql.com/downloads/connector/php-mysqlnd/
关于php - nd_pdo_mysql和pdo_mysql扩展之间有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46414868/