【问题标题】:Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in windows for php7致命错误:未捕获的错误:在 windows 中为 php7 调用未定义的函数 mysqli_connect()
【发布时间】:2020-08-08 07:40:39
【问题描述】:

我一直收到错误

致命错误:未捕获错误:调用未定义函数 mysqli_connect() 如果我尝试用 php 连接 mysql。

我是 php 的初学者,我几乎尝试了 Stack Overflow 上建议的所有解决方案,但无济于事。有人说要从 php.ini 文件中删除选定语句之前的分号。在 php7 中,有两个文件,但没有一个是 php.ini。一个是开发,一个是生产。两者相似。

我删除了开发文件并将生产文件重命名为 php.ini 作为各种答案的建议。然后我从开头删除了分号:

extension_dir = "ext"   

extension = mysqli

我做了几乎所有不同答案的建议。但似乎没有任何效果。

【问题讨论】:

  • 尝试找到您的扩展目录(例如C:\php7\ext),然后将该路径添加到extension_dir 值中。
  • 尝试同时运行php -i,看看是否有任何mysqli扩展启动错误。
  • 还要确保您正在编辑正确的 php.ini 文件。如果您通过 apache 或 nginx 等网络服务器运行 PHP,您可以在脚本顶部添加 phpinfo();,您会找到正确的 php.ini 文件的位置。如果您通过 cli 使用它,php -i 将为您提供正确的路径。
  • @halfer 感谢您的回复。我尝试将扩展目录的路径添加到 extension_dir 值中,但无济于事。另外, php -i 返回了很多信息,坦白说,我真的想不通。
  • C:\windows 中似乎没有任何名为 php.ini 的文件。这是您要求的要点链接 phpinfo.txt 文件:link

标签: php mysqli


【解决方案1】:

有时这可能有点棘手,尤其是在 Windows 上。根据 cmets 的对话,这里有一些可以尝试的方法。

首先要做的是确保您的php.ini 在正确的位置。执行php -i 并记下这些字段的值:

Configuration File (php.ini) Path => /etc/php7
Loaded Configuration File => /etc/php7/php.ini
Scan this dir for additional .ini files => /etc/php7/conf.d
Additional .ini files parsed => (none)

这些值适用于 Linux,但适用相同的原则 - 第一行向我表明默认情况下它将在 /etc/php7/php.ini 中查找,第二行表明它发现相同。我们在 cmets 中发现您的等价物是 C:\windows(和 C:\windows\php.ini)。

要做的第二件事是使用extension=mysqli 启用mysqli 模块。看来你做得不错。

接下来就是将extension_dir 指向正确的位置。默认情况下,我认为这是 .,这意味着与您的 PHP 文件夹 (C:\Users\Prassanna Nand Jha\Desktop\PHP) 相同的文件夹。在此处尝试"ext""./ext""C:\Users\Prassanna Nand Jha\Desktop\PHP\ext""C:/Users/Prassanna Nand Jha/Desktop/PHP/ext"。我不确定是否需要引号,但我通常会使用,而不是没有。

对于您所做的每一项更改,请执行php -i 以查看更改是否成功。如果 Windows 命令环境使内容飞过而无法读取所有内容,则将其重定向到文件中。

如果这不起作用,请考虑将 C:\Users\Prassanna Nand Jha\Desktop\PHP 移动到 C:\PHP - 可能这些空格会影响它。

最后,如果这仍然不起作用,我想知道您是否应该将此 PHP 安装移动到您的废纸篓并安装 XAMPP - 这是一个开箱即用的一体化安装程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-07
    • 2017-01-25
    • 2019-09-24
    相关资源
    最近更新 更多