phpinfo说MySQLnd是主动驱动程序,还是我感到困惑
当我尝试使用getAttribute函数时,我得到了以下错误:对非对象调用成员函数getAttribute()。看起来mysqlnd已启用,但我也不能使用get_result(),知道吗 最近这真的让我很困扰。在另一篇帖子上@inspire回答正确,但对我不起作用。你可以在这里找到: 当我回应这一点时:phpinfo说MySQLnd是主动驱动程序,还是我感到困惑,php,mysql,pdo,phpinfo,mysqlnd,Php,Mysql,Pdo,Phpinfo,Mysqlnd,当我尝试使用getAttribute函数时,我得到了以下错误:对非对象调用成员函数getAttribute()。看起来mysqlnd已启用,但我也不能使用get_result(),知道吗 最近这真的让我很困扰。在另一篇帖子上@inspire回答正确,但对我不起作用。你可以在这里找到: 当我回应这一点时: <?php $mysqlnd = function_exists('mysqli_fetch_all'); if ($mysqlnd) { echo 'mysqlnd enabl
<?php
$mysqlnd = function_exists('mysqli_fetch_all');
if ($mysqlnd) {
echo 'mysqlnd enabled!';
}
当我尝试此操作时,会在非对象上调用成员函数getAttribute()
任何帮助都将不胜感激。提前感谢。检查
mysqli\u fetch\u all
并不能真正描述您是否正在使用mysqlnd
。相反,它说您已经启用了
MySQLi只是PHP早期版本中提供的mysql
扩展的更新版本
mysql
扩展、mysqli
扩展和PDO-mysql驱动程序可以分别配置为使用
libmysqlclient或mysqlnd
此代码:
<?php
$mysqlnd = function_exists('mysqli_fetch_all');
if ($mysqlnd) {
echo 'mysqlnd enabled!';
}
在phpinfo或代码中检查mysqlnd驱动程序本身是没有意义的
检查其他API也没有意义。如果所需的API基于mysqlnd而不是其他API,则必须检查。因此,如果需要PDO,检查mysqli是没有意义的
要检查PDO,您必须首先拥有一个PDO对象,正如错误消息所示在发布权威声明之前,您肯定已经阅读了mysql_fetch_all手册页?@YourCommonSense“不附和任何内容表明您没有编译/启用/安装mysqli,并且可能正在使用较旧的mysql扩展。”。。。对我的意思是,检查mysqli_fetch_all将检查是否为mysqli启用了mysqlnd,但实际上并没有检查在所有可用PHP的MySQL客户端实现上是否启用了mysqld..可能重复
<?php
$mysqlnd = function_exists('mysqli_fetch_all');
if ($mysqlnd) {
echo 'mysqlnd enabled!';
}
<?php
$hasMySQL = false;
$hasMySQLi = false;
$withMySQLnd = false;
if (function_exists('mysql_connect')) {
$hasMySQL = true;
$sentence.= "(Deprecated) MySQL <b>is installed</b> ";
} else
$sentence.= "(Deprecated) MySQL <b>is not</b> installed ";
if (function_exists('mysqli_connect')) {
$hasMySQLi = true;
$sentence.= "and the new (improved) MySQL <b>is installed</b>. ";
} else
$sentence.= "and the new (improved) MySQL <b>is not installed</b>. ";
if (function_exists('mysqli_fetch_all')) {
$withMySQLnd = true;
$sentence.= "This server is using MySQLnd as the driver.";
} else
$sentence.= "This server is using libmysqlclient as the driver.";
echo $sentence;
$db = new PDO('mysql:host=localhost;dbname=<SOMEDB>', '<USERNAME>', 'PASSWORD');
if (strpos($pdo->getAttribute(PDO::ATTR_CLIENT_VERSION), 'mysqlnd') !== false) {
echo 'PDO MySQLnd enabled!';
}