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

+58
источник поделиться
13 ответов

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

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

+58
источник

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

if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
    echo 'We don\'t have mysqli!!!';
} else {
    echo 'Phew we have it!';
}
+41
источник
другие ответы

Связанные вопросы


Похожие вопросы

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

 sudo apt-get install php5-mysqlnd
+31
источник

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

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

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

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

+8
источник

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

sudo apt-get install php5-mysql
+4
источник

Похоже на проблему с вашей установкой.

  • Установили ли вы MySQLi?
  • Вы активировали его в php.ini?

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

+2
источник

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

+1
источник

Некоторые дистрибутивы (такие как 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
0
источник
<?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());
            }
        }
    }
?>
0
источник

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

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

0
источник

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

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

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

0
источник

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

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

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

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

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос