标签: mysqlnd

如何知道MySQLnd是否是主动驱动程序?

也许这是一个显而易见的问题,但我想确定.

我怎么知道MySQLnd是否是主动驱动程序?

我正在运行PHP 5.3和MySQL 5.1.37.在phpinfo()中列出了mysqlnd,但只有这个我不能确定我是否使用MySQLnd或旧驱动程序...

提取phpinfo()输出

mysql
MySQL Support   enabled
Active Persistent Links     0
Active Links    0
Client API version  mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $ 

mysqli
MysqlI Support  enabled
Client API library version  mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $
Active Persistent Links     0
Inactive Persistent Links   0
Active Links    26 

mysqlnd
mysqlnd enabled
Version     mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $ 

PDO
PDO support enabled
PDO drivers     mysql

pdo_mysql
PDO Driver for MySQL    enabled …
Run Code Online (Sandbox Code Playgroud)

php mysql mysqlnd

55
推荐指数
4
解决办法
4万
查看次数

如何为php启用mysqlnd?

我安装并运行了PHP(版本:5.3.17),我想切换到mysqlnd(在phpinfo mysqlnd中根本不存在).

我读到它为了设置它,你需要更新./configure命令:

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
Run Code Online (Sandbox Code Playgroud)

当我尝试安装它时,yum install php-mysqlnd我收到一个错误:

---> Package php-mysqlnd.x86_64 0:5.3.17-1.26.amzn1 will be installed
--> Processing Conflict: php-mysql-5.3.17-1.26.amzn1.x86_64 conflicts php-mysqlnd
--> Finished Dependency Resolution
Error: php-mysql conflicts with php-mysqlnd
Run Code Online (Sandbox Code Playgroud)

php mysql linux yum mysqlnd

45
推荐指数
2
解决办法
9万
查看次数

致命错误:调用未定义的方法mysqli_result :: fetch_all()

我在Ubuntu 10.04中遇到PHP问题.当我尝试使用mysqli_result :: fetch_all时出现此错误:

调用未定义的方法mysqli_result :: fetch_all()

但是,它适用于Windows XP.

代码:

$result = $this->dbh->query('SELECT [...] ');
return $result->fetch_all(MYSQLI_ASSOC);
Run Code Online (Sandbox Code Playgroud)

我不想在循环中使用fetch_assoc,因为我将结果发送到另一个层进行处理.

我使用的是PHP 5.4.4.和php -m | grep mysql mysqlnd模块它没有出现.我该如何安装?这可能是问题吗?

php mysqli fetchall mysqlnd

20
推荐指数
2
解决办法
5万
查看次数

无法使用旧的不安全身份验证连接到MySQL 4.1+

我知道有很多问题与我的问题一样,但我希望你能帮助我找到另一个解决方案.

我们正在为我们的项目使用Symfony 2.5.10,PHP 5.4.44MySQL 4.1.20.

每当我尝试登录系统或任何与数据库连接有关的行为时(例如使用FOS命令添加新用户),我都会收到此错误:

SQLSTATE [HY000] [2000] mysqlnd无法使用旧的不安全身份验证连接到MySQL 4.1+.请使用管理工具使用命令SET PASSWORD = PASSWORD('your_existing_password')重置密码.这将在mysql.user中存储一个新的,更安全的哈希值.如果在PHP 5.2或更早版本执行的其他脚本中使用此用户,则可能需要从my.cnf文件中删除旧密码标志

我们已经尝试设置old_passwordsmy.cnf为0,重启MySQL,为MySQL用户设置新密码并重新启动MySQL,但仍然是相同的.每当我们在查询窗口中运行它时:

SELECT user, Length(Password) FROM mysql.user;
Run Code Online (Sandbox Code Playgroud)

它仍然显示16作为我们正在使用的用户的密码长度.并且在检查mysql服务器变量和设置时,old passwords也是ON(即使我们已经在my.cnf中将old_password设置为0).

这可能有什么问题?我将衷心感谢您的帮助.

更新:与此同时,我们删除了db用户的密码,以便我们能够访问数据库.但是我仍在寻找其他解决方案,因为我在网上找到的解决方案(比如old_passwords=1在my.cnf中删除或评论,将old_passwords设置为0并设置新密码然后重启)对我来说不起作用.

另一个更新:通常,这个问题的解决方案将old_passwords在mysql中启动,但是,如PHP文档中所述,

新的mysqlnd库不读取mysql配置文件(my.cnf/my.ini).

那么这是否意味着设置old_passwords为0 in my.cnf没有用?我仍然没有找到解决这个问题的方法.

我们是否需要在所使用的任何平台上进行升级?在此先感谢您的帮助.

php mysql password-hash symfony mysqlnd

13
推荐指数
1
解决办法
1834
查看次数

Mysqlnd活动连接数太大了.这是正常的吗?

我有Windows 2003 Server.Apache 2.4.10, PHP 5.4.31 and MySQL 5.6.19安装.有两个wordpress网站在服务器上运行.

phpinfo();下面的mysqlnd部分中说;

active_connections  18446744073709551563
Run Code Online (Sandbox Code Playgroud)

这个号码正常吗?如果不是我怎么能减少它?

php mysql mysqlnd

9
推荐指数
1
解决办法
1537
查看次数

MySQLi get_result()在安装mysqlnd时未定义

我正在编写一个简单的测试脚本来了解MySQLi准备好的语句.该脚本将成为在处理结果时需要略微动态的函数的基础.我需要fetch方法作为一个类似于mysql_fetch_array()行为的数组返回.

我知道其中一些方法需要mysqlnd.我检查了phpinfo.Mysqlnd已安装并存在.见截图. 在此输入图像描述 在此输入图像描述

请注意,PDO在我的服务器上可用,但我需要在此时使用此脚本与MySQLi一起使用.!PDO将在本项目的后期进行研究.

require_once(__ROOT__ . '/config.inc.php');

$mysqli = new mysqli($config['db']['server'], $config['db']['username'], $config['db']['password'], $config['db']['database_name']);
$userid = 10;

$stmt = $mysqli->prepare("SELECT username, firstname, lastname FROM maj_user WHERE user_id < ?");

if ($stmt)
{
    /* bind parameters for markers */
    $stmt->bind_param('i', $userid);

    /* execute query */
    $stmt->execute();
    $result = $stmt->get_result();

    while ($row = $result->fetch_array())
    {
        echo 'We selected "' . $row['username'] . ' (' . $row['firstname'] . ' ' . $row['lastname'] . ')"' . PHP_EOL;
    }

    $result->close();
}

$mysqli->close();
Run Code Online (Sandbox Code Playgroud)

上面的代码导致:

致命错误 …

php mysqli mysqlnd

8
推荐指数
1
解决办法
1475
查看次数

MySQL Native Driver和MySQL Client Library之间有什么不同

我想知道MySQL Native Driver和MySQL Client Library之间的区别
以及何时使用它们

mysql mysqli mysqlnd

7
推荐指数
2
解决办法
1万
查看次数

MySQLi没有找到dockerized php

我正在尝试将我的网站停靠.我已经启动并运行了Nginx和PHP,除了我无法连接到数据库之外它正在查找.当页面加载时我得到错误:

Fatal error: Uncaught Error: Class 'MySQLi' not found in /private/conn.php:8 Stack trace: #0 /public_html/index.php(2): require() #1 {main} thrown in /private/conn.php on line 8
Run Code Online (Sandbox Code Playgroud)

我在第8行的连接线是:

$db = new mysqli("$host", "$user", "$pass", "$db", "$port");
Run Code Online (Sandbox Code Playgroud)

现在这在我的旧设置上工作得很好但是因为转移到新的并安装php7.1.5我无法让它运行.现在,我没有使用mysqlnd所以这可能是我的误解,但mysqlnd包括mysqli驱动程序.

phpinfo的输出: 配置 mysqlnd

我该如何运行?或者我现在应该使用不同的驱动程序?

php mysqli mysqlnd docker

7
推荐指数
3
解决办法
6545
查看次数

致命错误:调用未定义的方法mysqli_stmt :: get_result()

由于我已经将我的网站移动到新的vServer,我总是收到此错误消息

Fatal error:  Call to undefined method mysqli_stmt::get_result()
Run Code Online (Sandbox Code Playgroud)

这些代码行正常工作

$mysql = new mysqli($db_host, $db_user, $db_password, $db_database);
$partys = NULL;
$res_partys = $mysql->query("SELECT * FROM party ORDER BY begin");
while($row_partys = $res_partys->fetch_array()) {
    $partys[] = $row_partys;
}
$count_reg = $mysql->prepare("SELECT COUNT(*) FROM guestlist WHERE partyid = ?");
$count_reg->bind_param('i', $party['partyid']);
$count_reg->execute();
Run Code Online (Sandbox Code Playgroud)

$count_res = $count_reg->get_result();失败了.Mysqli支持已启用.

Accorind到一些互联网资源我需要PHP MySQL本机驱动程序,但我只在我的Debian 7机器上安装了php5-mysql,因为安装php5-mysqlnd via apt-get install php5-mysqlnd会自动删除Froxlor,这是我的服务器管理面板.

是否还有其他方法可以安装mysqlnd,除非通过apt-get download php5-mysqlnddpkg 下载并安装它,因为这会因为未满足的要求而在每次跟随apt-get调用时抛出错误,并从源代码编译PHP包括mysqlnd?

php mysql mysqli prepared-statement mysqlnd

6
推荐指数
1
解决办法
6246
查看次数

当我们告诉它不要这样做时,为什么 PDO 会生成警告?

问题

我们告诉 PDO 将每个问题包装成异常。在某些情况下,它会生成一些警告,然后才抛出异常。

为什么这样做?

重复?

关于它没有关于 SO 的正确答案。最后一个问题是MySQL 上的 PHP PDO 异常 + 警告已经消失?但人们只是将其标记为重复而不是仔细回答。

接受的答案不回答为什么这样做以及何时这样做。所以我研究了一下,会回答的。

php pdo mysqlnd

5
推荐指数
1
解决办法
481
查看次数

标签 统计

mysqlnd ×10

php ×9

mysql ×6

mysqli ×5

docker ×1

fetchall ×1

linux ×1

password-hash ×1

pdo ×1

prepared-statement ×1

symfony ×1

yum ×1