由于某些原因,我们托管服务器上的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扩展名,如下面的屏幕快照所示。

    php - nd_pdo_mysql和pdo_mysql扩展之间有什么区别?-LMLPHP

    由于libmysql以字符串形式返回数字类型,因此我将mysqlndnd_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/

    10-13 07:51
    查看更多