Неустранимая ошибка: 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

Ответ 1

Похоже, вам просто нужно установить MySQLi.

Если вы считаете, что сделали это и все еще имеете проблемы, отправьте свою операционную систему и все, что может помочь.

Ответ 2

Вы можете проверить, присутствуют ли библиотеки mysqli, выполнив этот код:

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

Ответ 3

Если вы находитесь на Ubuntu, запустите:

 sudo apt-get install php5-mysqlnd

Ответ 4

Если вы вызываете "новый 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());

Ответ 5

В дополнение к раскомментированию расширения php_mysqli.dll в php.ini, также раскомментируйте директиву extension_dir в php.ini и укажите свое местоположение:

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

Это заставило его работать на меня.

Ответ 6

My OS Ubuntu. Я решил эту проблему, используя:

sudo apt-get install php5-mysql

Ответ 8

Вы можете использовать рукописный класс MYSQLi, поэтому вам не нужно устанавливать mysqli. Это единственное решение, если вы не владеете сервером.

Ответ 9

Некоторые дистрибутивы (такие как 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

Ответ 10

<?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());
            }
        }
    }
?>

Ответ 11

Это решило исходную "не найденную" ошибку для меня. Обратите внимание на обратную косую черту, теперь это выглядит как сон. Нужно только при использовании пространства имен, но кто не сейчас?

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

Ответ 12

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

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

Я использовал 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

Ответ 13

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

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

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

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