由于某种原因,托管服务器上的PHP扩展pdo_mysql
无法运行使用mysql View的查询,并显示以下错误消息:
SQLSTATE [HY000]:一般错误:1615准备好的声明需要重新准备
其中有讨论:
https://bugs.mysql.com/bug.php?id=42041
以及众多stackoverflow条目。
但由于某种原因,使用View的查询运行得很好,如果我们使用扩展名nd_pdo_mysql
切换到连接,这是用于MySQL本机驱动程序mysqlnd
。
我的问题是:两个驱动程序之间有什么区别?为什么通常选择一个驱动程序而不是另一个?
感谢。
答案 0 :(得分:5)
要从PHP连接到MySQL服务器,有两个版本的驱动程序:
mysqlnd
libmysql
要使用mysqlnd
驱动程序连接到MySQL服务器,请使用nd_pdo_mysql
扩展名,如下面的屏幕截图所示。
由于libmysql
将数字类型作为字符串返回,因此我使用mysqlnd
和nd_pdo_mysql
来获取原生/严格数据,因此数字类型为 NOT 作为字符串返回。
来自MySQL官方网站: https://dev.mysql.com/downloads/connector/php-mysqlnd/
PHP
mysqlnd
的MySQL本机驱动程序是PHP脚本语言的MySQL客户端库libmysql
的替代品。