php - 如何为 PHP 的 CLI 启用 mysqli 支持

标签 php linux apache mysqli

我正在使用 Ubuntu LTS 14.04 操作系统,我正在尝试在 PHP CLI 中测试我的 PHP 脚本,但是无论我的代码尝试连接到 MySQL 的什么地方,都使用诸如...的命令

$mysqli = mysqli_connect($host,$user,$password,$database);  

...,我收到以下错误:

Fatal error: Call to undefined function mysqli_connect()...  

我已经查看了 /etc/php5/cli/php.ini/etc/php5/apache2/php.ini并没有发现任何区别。

我认为我必须为命令行界面 (CLI) 启用 mysqli 支持,但我不确定。

如何在不影响我当前的 Apache php.ini/configuration/installation 的情况下更正错误?

编辑:
根据评论,我在终端中运行了以下命令:

php --ini  

显示:

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

然后,我复制了/etc/php5/cli/php.ini/usr/local/lib/php.ini .

然后,我跑了php --ini再次显示:

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         /usr/local/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

然后,我再次从 PHP CLI 运行 PHP 脚本,并显示相同的错误。

最佳答案

Call to undefined function mysqli_connect()

表示未加载 mysqli 扩展。

I've reviewed /etc/php5/cli/php.ini AND /etc/php5/apache2/php.ini and have found no difference.

如果它们相同,我会感到非常惊讶。但在这两种情况下,它们都可能被构造为与通过包分发的扩展一起工作——即包含加载 mysqli 指令的 ini 文件,因此扩展可能位于其他地方并包含(或不包含)在这些文件中。

Configuration File (php.ini) Path: /usr/local/lib

你有一个弗兰肯斯坦系统。你需要把它清理干净。使用发行版的打包应用程序或从 tarball 安装应用程序。除非您知道自己在做什么,否则不要使用 tarball。不要混搭,除非您真的知道自己在做什么。

  • 删除 tarball PHP 文件
  • 重新安装 Ubuntu PHP 客户端
  • 重新安装 Ubuntu PHP mysqli 扩展

关于php - 如何为 PHP 的 CLI 启用 mysqli 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28510927/

相关文章:

php - 在 RegEx 中使用单词边界 (\b) 我需要在单词之前和之后,还是之前?

php - 使用AFNetworking和PHP从照片库上传所选图像

php - php中的日期问题

PHP - PDO SQLSRV - 连接字符串无效 [87]

linux - 是否需要创建一个名为 'git' 的用户来设置 git 服务器?

java - 我怎样才能在 java 中克服这个 HTTP GET 404 错误?

linux - 如何将数据复制到 USB 设备

linux - 在 Linux 中如何知道哪条中断线是共享的,哪条中断线是空闲的?

Apache .htaccess 将 index.html 重定向到 root,为什么是 FollowSymlinks 和 RewriteBase?

python - 我怎样才能添加apache asp和python(在linux而不是windows上)?