致命错误:未找到"MySQLi"类

Tyl*_*lor 82 php mysqli

我正在做一个教程,我收到此错误:

致命错误:第8行找不到类'MySQLi'(LONG URL)

第8行的代码是:

$mysqli = new MySQLi($db_server, $db_user, $db_pass, $db_name) or die(mysqli_error());
Run Code Online (Sandbox Code Playgroud)

我在网上看到有人说要看看它是否在我的phpinfo()中打开了,但是其中没有列出"mysqli"的内容.

另外,我正在运行PHP 5.2.5版

Gre*_*reg 77

听起来你只需要安装MySQLi.

如果您认为自己已经这样做但仍有问题,请发布您的操作系统以及其他可能有用的内容.

  • 在AWS上,您只需运行[`sudo yum install php-mysqli`](http://stackoverflow.com/a/23713997/111307) (18认同)
  • 我使用的是 Windows 10 并使用 zip 文件夹安装了 php。我的 php.int 包含 extension=mysqli 。但我仍然收到错误未定义函数 mysqli_connect() (5认同)

kar*_*m79 42

您可以通过执行以下代码来检查mysqli库是否存在:

if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
    echo 'We don\'t have mysqli!!!';
} else {
    echo 'Phew we have it!';
}
Run Code Online (Sandbox Code Playgroud)

  • 我仍然得到"我们没有mysqli !!!" 甚至在运行`sudo apt-get install php5-mysqlnd`之后? (5认同)
  • 我认为OP想要一个解决方案,而不是检查错误是否存在。所以也许你可以改进你的台词。 (2认同)

ans*_*man 35

If you are on Ubuntu, run:

 sudo apt-get install php5-mysqlnd
Run Code Online (Sandbox Code Playgroud)

  • 并且不要忘记在此之后重启Apache! (5认同)

ale*_*xkb 16

如果你从一个名为namespace的类中调用"new mysqli(..)",你可能会看到类似的错误Fatal error: Class 'foo\bar\mysqli' not found in.修复此问题的方法是使用前面的反斜杠将其显式设置为根命名空间,如下所示:

<?php 
$mysqli = new \MySQLi($db_server, $db_user, $db_pass, $db_name) or die(mysqli_error());
Run Code Online (Sandbox Code Playgroud)


rey*_*son 13

如果你在 Docker 上...

在 php-container 内运行:

#docker-php-ext-install mysqli

#apachectl restart
Run Code Online (Sandbox Code Playgroud)


小智 11

除了取消对php_mysqli.dll在扩展php.ini中,也取消注释的extension_dir指令在php.ini中,并注明您的位置:

extension_dir = "C:\software\php\dist\ext"
Run Code Online (Sandbox Code Playgroud)

这使它对我有用.

  • 它对我有用,但使用“./ext”,这是相对路径。我必须将“php.ini-development”重命名为“php.ini”,并取消该文件“extension=php_mysqli.dll”中的注释。天哪,我没有想念你 PHP。 (4认同)

小智 5

我的操作系统Ubuntu.我用以下方法解决了这个问题:

sudo apt-get install php5-mysql
Run Code Online (Sandbox Code Playgroud)