Как решить «class mysqli not found» при подключенном расширении mysqli?

Ссылка скопирована
1 ответ

Машина на Win10, локальный сервер на Apache (версия свежая), версия php 8.2.1. Расширение mysqli подключено.
Пытаюсь подключить к БД

define("DB_HOST","localhost"); define("DB_LOGIN","..."); define("DB_PASS","..."); define("DB_NAME","..."); $mysqli = new MySQLi(DB_HOST,DB_LOGIN,DB_PASS,DB_NAME);

define("DB_HOST","localhost"); define("DB_LOGIN","..."); define("DB_PASS","..."); define("DB_NAME","..."); $mysqli = new MySQLi(DB_HOST,DB_LOGIN,DB_PASS,DB_NAME);

Ловлю ошибку:

PHP Fatal error: Uncaught Error: Class "MySQLi" not found in F:servbres-lampassetsphpdb_connect.php

Пруф, что extension подключено:

Как решить «class mysqli not found» при подключенном расширении mysqli?

Файл php.ini так же подключен. При вызове phpinfo():

Как решить «class mysqli not found» при подключенном расширении mysqli?

В том же phpinfo() отображается:

Как решить «class mysqli not found» при подключенном расширении mysqli?

Сам файл расширения так же в папке присутствует и не поврежден:

Как решить «class mysqli not found» при подключенном расширении mysqli?

Подскажите как можно решить данную проблему?

Дополнительно:

Вы его в своём нэймспейсе вызываете? Покажите весь файл до подключения.

  • Дмитрий, если речь идет о директории, то вот полный путь "F:servbres-lampassetsphpdb_connect.php". Вызываю его через консоль, там соответственно путь так же указан верно:

    Как решить «class mysqli not found» при подключенном расширении mysqli?

  • Ну так в консоли и надо смотреть, какой там php.ini используется
  • lyrion, надо понимать, что через консоль работает php-cli, а через арбузер работает либо модуль апач, либо cgi/fpm и расширение для cli надо в другом ini подключать
  • Покажите в консоли вывод php -m
  • Дмитрий, вот какой смысл делать php -m? Что вы там собираетесь увидеть? Волшебное наличие mysqli? Я вам и без этого скажу, что его там нет. :)
    В чем логика этого действия? Предложить автору самому посмотреть - еще куда не шло. Но сюда-то зачем просить его писать очевидные вещи?
    смотреть надо phi -i
  • Дмитрий,

    Как решить «class mysqli not found» при подключенном расширении mysqli?

  • Дмитрий, не знал, что на cli идет другой ini-шник. Сейчас посмотрю
  • Дмитрий, вы были правы. Там шел другой ini-шник, проверил через команду php --ini. В нем расширение не было подключено. Оформите это как ответ, я отмечу его и закрою тему. Спасибо за помощь!
  • Ипатьев, посмотреть что его там нет
  • lyrion, да это очевидная проблема, которую решило 10М человек через гугл.
  • Дмитрий, видимо я гуглить не умею. 90% статей гласило "у вас не подключен extension, проверьте php.ini". Кто бы знал что php-cli к своему ini-шнику стучится
  • lyrion, ну вы в вопросе не указали как вы запускаете, потому и гуглили не туда
  • Дмитрий, в комментариях дал ответ.
    Проблема оказалась в том, что файл я вызывал через консоль, а php-cli берет не тот файл php.ini, что apache (путь который мы получали через phpinfo() ).
    Проверить путь к используемому файлу можно командой:
    php --ini
    Там у меня высветился другой ini файл. Когда я в нем раскомментировал расширение mysqli все заработало.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Мария Код Ответ

    Ошибка «class mysqli not found» возникает, когда PHP не может найти класс mysqli, несмотря на то, что расширение mysqli было успешно подключено. Это может быть вызвано несколькими причинами, и решение зависит от конкретной ситуации.

    Одной из причин может быть неправильная конфигурация PHP или сервера. Убедитесь, что расширение mysqli правильно подключено в файле php.ini и что PHP был перезапущен после внесения изменений. Проверьте также, что расширение mysqli установлено на сервере и активировано.

    Если расширение mysqli установлено и активировано, но ошибка все равно возникает, возможно проблема в самом коде. Убедитесь, что вы используете правильный синтаксис для подключения к базе данных с помощью mysqli. Проверьте также, что вы правильно создаете объект mysqli и вызываете методы этого объекта.

    Если все вышеперечисленные шаги не помогли решить проблему, попробуйте обновить PHP до последней версии. Иногда проблемы с классами могут быть вызваны несовместимостью версий PHP и расширений.

    Также стоит убедиться, что в вашем коде нет опечаток или ошибок, которые могли бы привести к появлению ошибки «class mysqli not found». Внимательно проверьте все использования класса mysqli в вашем коде и убедитесь, что они корректны.

    В целом, решение проблемы «class mysqli not found» требует тщательной диагностики и анализа. Помимо вышеперечисленных способов, также можно обратиться за помощью к сообществу разработчиков или специалистам по PHP, чтобы найти наиболее подходящее решение для вашей конкретной ситуации.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно