【问题标题】:Nette Tester: MySQLi not workingNette Tester:MySQLi 不工作
【发布时间】:2015-09-14 04:52:28
【问题描述】:

通常,通过 mod php 在 apache 中它工作得非常好,但如果我尝试 function_exists('mysqli_init'),函数不存在。

显示的其他错误:

调用未定义函数 mysqli_connect()

中未找到类“MySQLi”

为什么 MySQLi 不工作以及如何修复它?谢谢!

用于运行测试的命令:

vendor/bin/tester -c /etc/php5/apache2 -p php

【问题讨论】:

  • 小心,PHP CLI 和 PHP web 有两种不同的配置,所以从命令行测试时出现的 web 可能会有所不同。制作一个包含以下内容的网页要好得多: 似乎 mysqli 没有在您的服务器上为 CLI 配置,而是为 Web 配置的。祝你好运!

标签: php mysqli nette nette-tester


【解决方案1】:

尝试运行./vendor/bin/tester -c /etc/php5/apache2 -p php --info 以查看加载了哪些 php.ini 文件和 PHP 扩展。

您很可能会发现未加载 MySQLi 扩展,因为 /etc/php5/apache2/php.ini 不包含必要的选项。

正确的解决方案是为您的项目创建特定的php.ini 并进行必要的扩展。

另见official documentation

Tester 使用 -n 选项运行 PHP 进程,因此不会加载 php.ini(在 UNIX 中甚至不会从 /etc/php/conf.d/*.ini 加载

【讨论】:

    【解决方案2】:

    使用 tester -c 参数,您需要提供php.ini 文件的路径,而不是包含它的文件夹。

    测试器还重置 php 环境以获得可重复的结果。最好提供自己的php.ini,它只定义所需的扩展:

    [PHP}
    extension=mysqli.so
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多