【问题标题】:Fatal error: Call to undefined function mysqli_connect致命错误:调用未定义函数 mysqli_connect
【发布时间】:2017-01-25 07:28:01
【问题描述】:

我在 Synology 服务器上来自 PuTTY 的 php 脚本返回:

PHP 致命错误:调用未定义函数 mysqli_connect()`。

Mysqli 安装在服务器上,之前已通过浏览器在脚本中多次使用。我不明白为什么 mysqli_connect() 应该是未定义的。我该如何解决这个问题?

【问题讨论】:

标签: php mysqli ssh


【解决方案1】:

通过 CLI(从 Putty)运行它:
php70 --ini
我打印了 PHP 使用的 ini 文件列表。

我发现,该网络服务器正在使用
/usr/syno/etc/packages/WebStation/php70/conf.d/user_settings.ini
而 CLI 不使用该文件。它只使用
/usr/local/etc/php70/php.ini

所以,我不得不在该文件中添加几行:
sudo vi /usr/local/etc/php70/php.ini

以下是要添加的行:

extension = mysqli.so
extension = pdo_mysql.so

【讨论】:

  • 我在 windows 中运行 php7 和 Apache2.4。得到错误 Call to undefined function mysqli_connect() 在 php.ini 中添加这些行的位置
  • @Shambhu,这个问题是针对 Synology 操作系统的。我建议为 Windows 搜索/创建单独的问题
【解决方案2】:

创建一个php文件并有代码 检查 mysqli 部分是否显示。它应该以 HTML 表格格式显示以下字符串。

mysqli

MysqlI 支持已启用

如果 mysqli 不可用,那么您需要在 php.ini / 中启用它,同时使用 apachee 进行配置。

【讨论】:

  • 它是共享主机吗,有人不小心禁用了它。
  • 是的,我已经这样做了,并且启用了 mysqli 并且它不是共享主机。
  • 这样做 -> 不知道它可能会被更改,即 php.ini,可能是 php.ini 中的问题。这是 /etc/php/php.ini 文件中的一个简单随机语法错误。运行 php -m 后发现。参考:bbs.archlinux.org/viewtopic.php?id=152355。参考 2:bbs.archlinux.org/viewtopic.php?id=138131。 Atlast 检查“谁”最后登录的用户。
【解决方案3】:

Web 版本和 CLI 版本使用不同的 php.ini 文件。

你可以通过下面的命令找出使用了哪个ini文件

php -i | grep php.ini

然后配置这个php.ini,让它支持mysqli。

【讨论】:

    猜你喜欢
    • 2019-09-24
    • 2013-11-12
    相关资源
    最近更新 更多