【问题标题】:Mysqli class not found. Using percona, php5-fpm, nginx, phalcon未找到 mysqli 类。使用 percona、php5-fpm、nginx、phalcon
【发布时间】:2014-10-17 22:32:35
【问题描述】:
Fatal error: Class 'TKStdlib\mysqli' not found in /var/www/tk-browser-app/application/library/tk-stdlib/DbAbstract.php on line 28

听起来我需要安装 mysqli。是的,我知道,但它说它是在我执行“php -m”时安装的。它在我的 php5-fpm 中的 php.ini 文件中为“extension=mysqli.so”。

我觉得这个指南http://www.php.net/manual/en/mysqli.installation.php 很难理解。 ./configure 文件应该在哪里?是 php5-mysql 还是 percona mysql 也一样?

【问题讨论】:

    标签: php class


    【解决方案1】:

    您已将脚本设置到命名空间中,并且它正在该命名空间中查找类。

    您可以通过显式尝试将 mysqli 类引用为全局类来解决此问题:

    $db = new \mysqli( ... );
    

    有关这方面的更多信息,请参阅http://php.net/manual/en/language.namespaces.fallback.php,其中说:

    类名总是解析为当前的命名空间名。

    【讨论】:

    • 我将“输入中的意外字符”从 mysqli 更改为 \mysqli。这是在一个相当标准的基于 LAMP 的网络酒店上。
    • @PeterMortensen,命名空间最初是在 PHP 5.3.0(大约 2009 年 6 月)中引入的。如果您使用的是旧版本的 PHP,它将无法识别 `\` 字符。
    • 你是对的。包括“phpinfo();”报告 “PHP 版本 5.2.17”。立即想到的是“安全漏洞”。
    • 我后来在另一家相当标准的网络酒店试了一下。 “phpinfo();”报告“PHP 版本 5.6.18”。 PHP 5 系列 2016-02-04(?) 似乎是最新的(php.net/downloads.php 有“PHP 5.5”、“PHP 5.6”和“PHP 7.0”)。
    • 也许您可以在答案中包含一些此类信息(?)。
    猜你喜欢
    • 2014-11-01
    • 2015-11-17
    • 2013-08-28
    • 2016-02-24
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    相关资源
    最近更新 更多