Неустранимая ошибка: Class 'MySQLi' не найден

Я делаю учебник и получаю эту ошибку:

Неустранимая ошибка: Class 'MySQLi' не найден (LONG URL) в строке 8

Код в строке 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 

Если вы вызываете «новый 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_mysqli.dll в php.ini , также раскомментируйте директиву extension_dir в php.ini и укажите свое местоположение:

 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. Это единственное решение, если вы не владеете сервером.

Некоторые дистрибутивы (например, Gentoo ) поддерживают несколько установок PHP, и вы должны убедиться, что используете один с mysqli, установленным и включенным.

В Gentoo я установил новый PHP (с включенным флажком USE mysqli), но мне нужно было активировать новую версию PHP (поскольку в старой, возможно, отсутствовала mysqli):

 # 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 ());

Я проверил все выше, и это не сработало для меня,

Есть несколько шагов, которые я нашел.

Я использовал PHP Version 5.5.9-1ubuntu4.17 на Ubuntu 14.04

Сначала проверьте папку

 #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.ini найти extension_dir

В моем случае я должен установить extension_dir = /usr/lib/php5/20121212

И перезапустите apache2: /ect/init.d/apache2 restart

Я думал, что могу помочь кому-либо с той же проблемой, используя серверы Namesco. Я пытался решить эту проблему после перемещения базы данных с моего локального сервера на домашнем компьютере в namesco. Они не помогли бы им сказать, что это проблема кодирования.

  • Однако было легко исправить их хостинг-интерфейс CPANEl LINUX.
  • Нажмите на php.
  • затем щелкните на php-модулях и из их списка предустановленных модулей просто щелкните поле для mysqli.
  • Затем нажмите «Сохранить». (Не нужно менять код, если он работал на другом сервере.)

К сожалению, их статьи поддержки были пустой тратой времени. Прочитав это, я пошел в админ-интерфейс с новым определением.

Спасибо всем.