#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 — это универсальный установщик, который должен работать «из коробки».