0

我有最新版本的 Apache (Apache 2.4)、最新版本的 PHP (PHP7) 和最新版本的 MySQL(不确定版本,但我有 WorkBench 6.3 版)。过去,当我通过这行代码检查我的 PHP 是否正常工作时,<?php phpinfo(); ?>它会显示我已经安装了 MySQL / mysqli 并准备好了。但是对于 PHP7,它显示 mysqlnd。

我尝试使用 mysqli 命令来检查我是否可以连接到我的数据库mysqli_ping(),我还尝试使用服务器、用户、密码连接到数据库。我不断收到诸如 Class mysqli not found 之类的错误。或者调用未定义的函数 mysqli_ping()。我尝试在网上搜索一些答案,但我能找到的只是我需要安装 MySQL(但一些网站说它已被弃用)。

我可以为 PHP7 获得 mysqli 吗?还是我使用mysqlnd?什么是mysqlnd?它是 MySQL/mysqli 的新版本吗?

4

3 回答 3

1

2020 年更新

对于 Windows 10 用户,我强烈推荐用于 linux (WSL 2)的 windows 子系统并在那里设置您的服务器。

如果你需要在windows环境下访问php和mysql,那么最快的方法就是安装Wampserver。如果您还需要通过控制台访问 php,则将 php 位置(如C:\wamp64\bin\php\php7.4.11)添加到环境变量中。

如果这不适合您,并且您需要始终在系统上启用完整设置,请按照使用 choco 安装。


要正确使用 apache 并加载所有需要的扩展(包括 php_mysqli),您需要PHP 的ThreadSafe版本,因此请确保下载正确的版本,或者如果您使用Chocolatey来管理您的 Windows 应用程序,那么只需使用以下命令安装 php:

choco install php --package-parameters='"/ThreadSafe "'.

这将在C:\tools\php72目录中安装 php,但您可以使用另一个参数覆盖它:

choco install php --package-parameters='"/ThreadSafe ""/InstallDir:C:\PHP"""'.
于 2018-05-24T21:10:43.700 回答
0

检查您的系统路径环境变量是否包含 PHP 安装目录。这对我来说适用于 PHP 7.1 / Apache 2.4 / Windows Server 2016。

于 2017-09-30T13:44:45.923 回答
0

mysqlnd 扩展是 PHP 的一部分。它是作为捆绑 libmysqlclient 的替代方案而开发的,因为该库的许可条件使得与 PHP 捆绑起来很尴尬。

您不会直接使用 mysqlnd。它是 mysqli 和 pdo_mysql 用作与 MySQL 服务器通信的一种内部库。

至于mysqli,是的,它适用于PHP 7。我不使用Windows,但显然并非所有扩展都默认启用。

您可能需要编辑 php.ini 并取消注释该行

extension=ext_mysqli.dll

或该扩展名的任何内容。它可能已经在文件中,但被注释掉了。所以去看看看看。

于 2017-04-16T02:43:07.503 回答