致命错误:未find类“MySQLi”

我正在做一个教程,并得到这个错误:

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

第8行的代码是:

$mysqli = new MySQLi($db_server, $db_user, $db_pass, $db_name) or die(mysqli_error()); 

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

另外,我正在运行PHP版本5.2.5

听起来就像你只需要安装MySQLi 。

如果你认为你已经这样做了,但仍然有问题,请发布你的操作系统和其他可能有用的东西。

你可以通过执行这个代码来检查mysqli库是否存在:

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

如果你在Ubuntu上运行:

  sudo apt-get install php5-mysqlnd 

如果您从名称空间的类中调用“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()); 

除了取消注释php.ini中php_mysqli.dll扩展,还可以在php.ini中取消注释extension_dir指令并指定您的位置:

 extension_dir = "C:\software\php\dist\ext" 

这使它为我工作。

我的操作系统是Ubuntu 。 我解决了这个问题,使用:

 sudo apt-get install php5-mysql 

看起来像你的安装问题。

  • 你安装了MySQLi吗?
  • 你有没有在php.ini中激活它?

http://www.php.net/manual/en/mysqli.installation.php

你可以使用手写的MYSQLi类 ,所以你不需要安装mysqli。 如果您不拥有服务器,这是唯一的解决scheme。

一些发行版(如Gentoo )支持PHP的多个安装,并且您必须确保您使用的是安装并启用了mysqli的版本。

在Gentoo上,我安装了一个新的PHP(启用了mysqli USE标志),但是我需要激活新版本的PHP(因为旧的必须已经缺lessmysqli):

 # eselect php list apache2 [1] php5.3 * [2] php5.5 # eselect php set apache2 2 You have to run `/etc/init.d/apache2 restart' for the changes to take effect # /etc/init.d/apache2 restart 
 <?php /* If the error is due to calling mysqli in a class */ class dbconnect extends mysqli{ private $host = 'localhost'; private $user = 'root'; private $pass = ''; private $db = 'test'; public function __construct() { parent::__construct($this->host, $this->user, $this->pass, $this->db); if (mysqli_connect_error()) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } } } ?> 

这解决了我最初的“找不到”的错误。 注意反斜杠,现在就像一个梦一样。 只有在使用命名空间时才需要,但现在谁不需要呢?

$ mysqli = new \ MySQLi($ db_server,$ db_user,$ db_pass,$ db_name)或die(mysqli_error());

我检查了以上所有内容,对我来说不起作用,

我发现了一些步骤。

我在Ubuntu 14.04上使用了PHP 5.5.9-1ubuntu4.17

首先检查文件夹

 #ls /etc/php5/mods-available/ json.ini mcrypt.ini mysqli.ini mysql.ini mysqlnd.ini opcache.ini pdo.ini pdo_mysql.ini readline.ini xcache.ini 

如果它不包含mysqli.ini ,请阅读其他安装它的答案,

打开php.inifindextension_dir

在我的情况下,我必须设置extension_dir = /usr/lib/php5/20121212

并重新启动apache2: /ect/init.d/apache2 restart

我想我可以用Namesco服务器帮助任何有同样问题的人。 我一直试图解决这个问题后,从家用电脑上的本地服务器移动到namesco数据库。 他们不会协助他们说这是一个编码问题。

  • 但是,从CPANEl LINUX托pipe界面修复起来很简单。
  • 点击PHP。
  • 然后点击php模块,从预装模块列表中点击mysqli框。
  • 然后点击保存。 (如果在另一台服务器上工作,则无需更改代码。)

不幸的是,他们的支持文章是浪费时间。 看完这个后,我去了一个新的决心pipe理界面。

谢谢大家。