【问题标题】:How to enable mysqli with PHP 7?如何使用 PHP 7 启用 mysqli?
【发布时间】:2017-09-11 23:44:58
【问题描述】:

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

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

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

【问题讨论】:

  • php 文档中提到了 Mysqlnd,因此您可以轻松找到一些问题的答案。关于 mysqli:您是否尝试过只安装 mysqli 扩展?我会建议使用 PDO,但如果您对 mysqli 感到满意并且它很小,您仍然可以使用 mysqli。

标签: php mysqli php-7 mysqlnd


【解决方案1】:

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

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

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

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

extension=ext_mysqli.dll

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

【讨论】:

  • 我已经这样做了。这是我检查的第一件事。我认为我的mysql安装有问题。我刚刚尝试从命令行访问,它说它无法连接到“localhost”上的 MySQL 服务器。我试图寻找如何启动 mysql(以防它没有启动)并且一切都指向调用 mysqld(这对我来说没有出现)
  • 请参阅dev.mysql.com/doc/refman/5.7/en/windows-start-service.html 获取有关在 Windows 上启动 MySQL 服务的帮助。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    2020 年更新

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

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

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


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

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

    这会将php安装在C:\tools\php72目录下,但是你可以用另一个参数覆盖它:

    choco install php --package-parameters='"/ThreadSafe ""/InstallDir:C:\PHP"""'.
    

    【讨论】:

      猜你喜欢
      • 2016-05-27
      • 2018-06-17
      • 2015-04-15
      • 2019-06-27
      • 1970-01-01
      • 2016-11-19
      相关资源
      最近更新 更多