【发布时间】:2018-03-06 23:50:35
【问题描述】:
由于某种原因,我们托管服务器上的 pdo_mysql PHP 扩展无法运行使用 MySQL 视图的查询,并显示此错误消息。
SQLSTATE[HY000]: 一般错误:1615 Prepared statement需要重新准备
(Bug #42041 Prepared-Statement fails when MySQL-Server under load 上有讨论,Stack Overflow 上有很多问题。)
由于某种原因,使用视图的查询运行良好,如果我们切换到使用 nd_pdo_mysql 扩展,这是 MySQL 原生驱动程序 (mysqlnd)。
pdo_mysql和nd_pdo_mysql有什么区别?为什么会选择一个而不是另一个?
谢谢。
【问题讨论】:
-
@HaydenSchiff,谢谢,但链接的文章似乎与 pdo 驱动程序无关。关于 pdo_mysql 和 nd_pdo_mysql 驱动程序之间的差异还有更多帮助吗?
-
我不熟悉术语“nd_pdo_mysql”。后端库通常编译成 PHP,它不是你可以在运行时选择的东西。你在使用一些第三方 PHP 发行版吗?
-
致谷歌用户:
nd_pdo_mysql似乎是cPanel 托管平台提供的自定义可插入扩展,以便在运行时选择加入 MySQL 本机驱动程序。在常规 PHP 设置中,MySQL 驱动程序在 compile time 中选择,之后无法更改,因此pdo_mysql是唯一可用的扩展名,并不暗示驱动程序的任何内容。