由于某些原因,我们托管的服务器上的pdo_mysql PHP扩展无法运行使用MySQL视图的查询,并显示以下错误消息:
出于某种原因,如果我们切换到使用针对MySQL Native Driver(mysqlnd)的nd_pdo_mysql扩展,使用视图的查询就可以正常运行。 pdo_mysql和nd_pdo_mysql之间有什么区别?为什么会选择其中一个?
谢谢。
(有关Bug #42041 Prepared-Statement fails when MySQL-Server under load的讨论以及Stack Overflow上的众多问题。)SQLSTATE [HY000]:General error: 1615 Prepared statement needs to be re-prepared
出于某种原因,如果我们切换到使用针对MySQL Native Driver(mysqlnd)的nd_pdo_mysql扩展,使用视图的查询就可以正常运行。 pdo_mysql和nd_pdo_mysql之间有什么区别?为什么会选择其中一个?
谢谢。
nd_pdo_mysql
看起来是由 cPanel 托管平台提供的自定义可插拔扩展,用于在运行时选择 MySQL Native Driver。在常规的 PHP 设置中,MySQL 驱动程序是在编译时选择的,不能在之后更改,因此pdo_mysql
是唯一可用的扩展,不涉及驱动程序的任何内容。 - Álvaro González