【问题标题】:PHP: mysqli extension doesn't loadPHP:mysqli 扩展不加载
【发布时间】:2018-06-22 11:16:37
【问题描述】:

我尝试将 MySQL 与 PHP 一起使用,但出现此错误:

致命错误:未捕获的错误:在“文件名”堆栈跟踪中调用未定义函数 mysqli_connect():“文件名”中抛出 #0 {main} `

在执行print_r( get_defined_functions()) 时,我看到MySQLi 扩展不存在,但它已“加载”在php.ini 文件中(我的意思是这不在评论中)。

我指定 PHP 目录在 PATH 中(我在 windows 下),而 MySQL、PHP 和 Apache 在我的 C: 盘上。

我不知道问题出在哪里,这可能是一件小事,但我看不出是哪一个。

我的版本是:

阿帕奇 2.4.47 PHP 7.1.7 MySQL 5.7 Windows 7的

PS:php_mysqli.dll 只做 97k。不知道是不是正常。

我是如何解决这个问题的:我刚刚在 php.ini 文件中加载扩展的行下添加了extension_dir="path_to_php\ext"。此行用于指示硬盘中的扩展位置。不要忘记重启你的服务器,它会重新加载 php.ini 文件。

【问题讨论】:

  • 您确定您正在查看正确的php.ini 文件吗? CLI 和网络服务器通常有不同的。

标签: php apache mysqli


【解决方案1】:

首先,运行phpinfo() 以确保您查看的是正确的php.ini

如果您的 php.ini 文件有 extension=php_mysqli.dll 未注释,请检查您的扩展目录。您可能需要明确设置它,例如:

extension_dir="C:\xampp\php\ext"

如果问题仍然存在,请检查 apache 错误日志,您应该在那里找到更多信息。

【讨论】:

  • phpinfo() 显示相同版本的 PHP,我尝试以不同的方式手动添加 php_mysqli.dll 的目录,但没有任何效果,并且 apache 日志只说与我的项目:调用未定义的函数 mysqli_connect()
  • 这不是您必须在 phpinfo() 数据中查看的 php 版本,而是使用您的 Web 服务器的 php.ini 文件的位置。检查您查看的文件是否正确。
  • 这个我也搜过了,这个是加载好的文件。还提到了“c:/Windows”,但经过几次尝试,它并没有改变任何东西
  • 您是否在每次编辑 php.ini 文件时都重新启动了 apache Web 服务器?如果您不重新启动它,它将不会加载更改。
  • 嗯...就是这样,我在加载模块的行下添加了extension_dir="path_to_php\ext",重新启动服务器后,它就可以工作了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
  • 2014-04-10
  • 2019-02-26
相关资源
最近更新 更多