nd_pdo_mysql和pdo_mysql扩展有什么区别?

use*_*816 5 php mysql pdo

由于某种原因,__CODE__托管服务器上的PHP扩展无法运行使用mysql View的查询,并显示以下错误消息:

SQLSTATE [HY000]:常规错误:1615准备好的语句需要重新准备

其中有讨论:

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

以及众多stackoverflow条目.

但是出于某种原因,使用View的查询运行得很好,如果我们使用扩展名切换到连接__CODE__,这是用于MySQL Native Driver __CODE__.

我的问题是:两个驱动程序之间有什么区别?为什么通常选择一个驱动程序?

谢谢.

Aam*_*irR 6

要从PHP连接到MySQL服务器,有两个版本的驱动程序:

  1. mysqlnd
  2. libmysql

要使用mysqlnd驱动程序连接到MySQL服务器,请使用nd_pdo_mysql扩展名,如下面的屏幕截图所示.

在此输入图像描述

由于libmysql将数值类型作为字符串返回,因此我使用mysqlndwith nd_pdo_mysql来获取本机/严格数据,因此数字类型不会作为字符串返回.

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

用于PHP的MySQL本机驱动程序mysqlndlibmysqlPHP脚本语言的MySQL客户端库的替代品.

  • > 由于 libmysql 将数字类型作为字符串返回,因此我使用 mysqlnd 和 nd_pdo_mysql 来获取本机/严格数据,以便数字类型不会作为字符串返回。----- 我在其他地方没有找到此信息,并且现在很高兴能够了解为什么人们会选择使用 nd_pdo_mysql 而不是 pdo_mysql。谢谢。 (2认同)
  • 来自cPanel (2认同)