Неустранимая ошибка: неперехваченная ошибка: вызов неопределенной функции mysqli_connect() в Windows для php7

#php #mysqli

#php #mysqli

Вопрос:

Я постоянно получаю ошибку

Неустранимая ошибка: неперехваченная ошибка: вызов неопределенной функции mysqli_connect() при попытке подключить mysql к php.

Я новичок в php и перепробовал почти все решения, предложенные в Stack Overflow, но безрезультатно. Некоторые говорили, что нужно удалить точки с запятой перед выбранными операторами из файла php.ini. В php7 было два файла, но ни один из них не был php.ini. Одна была разработкой, а другая — производством. Оба похожи.

Я удалил файл разработки и переименовал производственный файл в php.ini, как предлагалось в различных ответах. Затем я удалил точки с запятой из начала:

 extension_dir = "ext"   
  

и

 extension = mysqli
  

Я сделал практически все, что предлагали разные ответы. Но, похоже, ничего не работает.

Комментарии:

1. Попробуйте найти каталог ваших расширений (например, C:php7ext ) и затем добавить этот путь в extension_dir значение.

2. Попробуйте также запустить php -i , чтобы увидеть, есть ли какие-либо ошибки запуска расширения mysqli.

3. Также убедитесь, что вы редактируете правильный файл php.ini. Если вы запускаете PHP через веб-сервер, такой как apache или n&inx, вы можете добавить phpinfo(); поверх своего скрипта, и вы найдете расположение нужного файла php.ini. Если вы используете ее через cli, php -i вместо этого вам будет указан правильный путь.

4. @halfer Спасибо за ответ. Я попытался добавить путь к каталогу расширений в значение extension_dir, но безрезультатно. Кроме того, php -i вернул много информации, и, честно говоря, я действительно не могу разобраться во многом из этого.

5. Похоже, что в C:windows . Вот основная ссылка phpinfo.txt файл, который вы просили: ссылка

Ответ №1:

Иногда это может быть немного сложно, особенно в Windows. Вот несколько вещей, которые нужно попробовать, основываясь на обсуждении комментариев.

Первое, что нужно сделать, это убедиться, что ваш php.ini находится в нужном месте. Выполните php -i и обратите внимание на значения этих полей:

 Confi&uration File (php.ini) Path =&&t; /etc/php7
Loaded Confi&uration File =&&t; /etc/php7/php.ini
Scan this dir for additional .ini files =&&t; /etc/php7/conf.d
Additional .ini files parsed =&&t; (none)
  

Эти значения предназначены для Linux, но применяется тот же принцип — первая строка указывает мне, что она будет искать в /etc/php7/php.ini по умолчанию, а вторая строка указывает, что она нашла то же самое. В комментариях мы обнаружили, что вашим эквивалентом является C:windows C:windowsphp.ini ).

Второе, что нужно сделать, это включить модуль mysqli с помощью extension=mysqli . Похоже, вы сделали это нормально.

Следующее, что нужно сделать, это указать extension_dir в правильном месте. По умолчанию я думаю, что это . , что означает ту же папку, что и ваша папка PHP ( C:UsersPrassanna Nand JhaDesktopPHP ). Попробуйте "ext" или "./ext" , или "C:UsersPrassanna Nand JhaDesktopPHPext" или "C:/Users/Prassanna Nand Jha/Desktop/PHP/ext" здесь. Я не уверен, требуются ли кавычки, но я бы обычно использовал с, а не без.

Для каждого вносимого изменения делайте php -i , чтобы увидеть, было ли изменение успешным. Перенаправьте это в файл, если командная среда Windows заставляет содержимое пролетать мимо, не имея возможности прочитать все это.

Если это не сработает, подумайте о переходе C:UsersPrassanna Nand JhaDesktopPHP в C:PHP — возможно, пробелы нарушают его.

Наконец, если это все еще не работает, мне интересно, не следует ли вам просто переместить эту установку PHP в корзину для мусора и установить XAMPP — это универсальный установщик, который должен работать «из коробки».