nd_pdo_mysql和pdo_mysql扩展之间的区别是什么?

问题描述:

对于我们的托管服务器上的一些原因,PHP扩展pdo_mysql不能运行使用MySQL视图的查询,与此错误消息:nd_pdo_mysql和pdo_mysql扩展之间的区别是什么?

SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared

的还有这里的讨论:

https://bugs.mysql.com/bug.php?id=42041

以及许多计算器条目。

但由于某些原因,使用View的查询运行得很好,如果我们切换到使用扩展nd_pdo_mysql(用于MySQL本地驱动程序mysqlnd)进行连接。

我的问题是:两个司机之间有什么区别,为什么一个人会选择一个呢?

谢谢。

+1

这可能帮助:https://secure.php.net/manual/en/mysqlnd.overview.php –

+0

@HaydenSchiff,感谢,但链接文章似乎不涉及到pdo驱动程序。有什么更多的帮助与pdo_mysql和nd_pdo_mysql驱动程序之间的差异? – user2340816

+0

我不熟悉术语“nd_pdo_mysql”。后端库通常编译到PHP中,这不是您可以在运行时选择的东西。你在使用一些第三方PHP发行版吗? –

要连接到从PHP MySQL服务器,还有司机的两个版本:

  1. mysqlnd
  2. libmysql

为了连接到你的MySQL服务器使用mysqlnd驱动程序,您请使用nd_pdo_mysql扩展名,如下面的截图所示。

enter image description here

由于libmysql返回数值类型为字符串,我用mysqlndnd_pdo_mysql为了得到本地/严格的数据,这样的数字类型作为字符串返回。

从MySQL的官方网站: https://dev.mysql.com/downloads/connector/php-mysqlnd/

The MySQL native driver for PHP mysqlnd is a drop-in replacement for the MySQL Client Library libmysql for the PHP script language.

+0

>由于libmysql将数字类型作为字符串返回,因此我使用mysqlnd和nd_pdo_mysql来获取本地/严格数据,以便数值类型不会作为字符串返回。 -----我还没有在其他地方找到这个信息,现在很高兴有一些理解为什么会选择使用nd_pdo_mysql而不是pdo_mysql。谢谢。 – user2340816

+0

此截图属于哪个软件? –

+1

它来自cPanel – AamirR