Подтвердить что ты не робот

Неустранимая ошибка: вызов функции undefined mysqli_connect()

В течение 2 дней я пытаюсь решить это, но, к сожалению, никакого результата. Позвольте мне рассказать вам мою историю о проблеме. Я запутал приложение на сайте, и приложение имеет дело с отзывами. Но я пытаюсь поместить его на другой сайт, и я скопировал php файлы, файл sql со старого сайта и переместил их на новый сайт (они находятся на разных FTP-серверах). Когда я пытаюсь перейти на страницы из приложения, я получаю эту ОШИБКУ FATAL:

Неустранимая ошибка: вызов функции undefined mysqli_connect()

Код, который я написал для подключения к базе данных, это (со скрытыми учетными данными):

$con = mysqli_connect("","*the_name*","*the_pass*","*the_database*");
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

Почему я получаю сообщение об ошибке? Он работает на старом сервере, а код я думаю, что это не проблема, потому что он работает на localhost, а на новом сервере - нет. Кто-нибудь может мне помочь?

4b9b3361

Ответ 1

Расширение PHP mysqli не установлено на вашем новом сервере.

Обратитесь к администратору вашего сервера.

Ответ 2

Если вы размещаете сервер самостоятельно, в файле php.ini удалите точку с запятой перед расширением extension = php_mysqli.dll

Ответ 3

Для CentOS выполните:

sudo yum install php-mysqli

Ответ 4

Просто сделай это

sudo apt install php-mysqli

Работает отлично и не зависит от версии

Ответ 5

В Ubuntu мне пришлось установить расширение php5 mysql.

apt-get install php5-mysql

Ответ 6

Случается, когда php-расширения не используются по умолчанию. В файле php.ini измените значение ;extension=php_mysql.dll
на extension=php_mysql.dll.

** Если эта ошибка регистрируется, добавьте путь к этому файлу dll, например, extension=C:\Php\php-???-nts-Win32-VC11-x86\ext\php_mysql.dll

Сделайте то же самое для php_mysqli.dll и php_pdo_mysql.dll. Сохраните и запустите свой код еще раз.

Ответ 7

Позднее разговор...

Если вы установили модуль и правильно установили свой файл PHP.INI, проверьте свой журнал ошибок apache на следующее:

PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку "C:\php\ext\php_mysqli.dll" - указанный модуль не найден.

В этом случае ваш каталог расширений не так, как вы думаете. Вы можете настроить его явно, например:

extension_dir="C:\xampp\php\ext"

Ответ 8

Если вы размещаете сервер самостоятельно, и этот сервер оказывается Apache, вы также можете получить эту ошибку, даже если у вас есть uncommented extension=php_mysqli.dll в php.ini.

Вам также нужно сообщить Apache, где найти php.ini, с помощью директивы PHPIniDir в Apache httpd.conf

AddHandler application/x-httpd-php .php
PHPIniDir "<path-to-folder-where-php-ini-lives>"

Ответ 9

Если вы используете Ubuntu 16.04 (возможно, и выше), у вас уже есть этот модуль, но по умолчанию он не включен. Просто сделай это:

sudo phpenmod mysqli

Ответ 10

Мой был немного другим для php7 на centos7.

В /etc/php.ini

; расширение = MySQLi

в

расширение = MySQLi

Ответ 11

В версии нет ошибки, но расширение mysqli PHP не установлено на вашем компьютере. Для устранения этой проблемы обратитесь к поставщику услуг.

Ответ 12

Mysqli не установлен на новом сервере. Запустите phpinfo() для подтверждения.

<?php 

phpinfo();

Ответ 13

В Raspberry Pi мне пришлось установить расширение php5 mysql.

apt-get install php5-mysql

После установки клиента веб-сервер необходимо перезапустить. Если вы используете apache, то должно работать следующее:

sudo service apache2 restart

Ответ 14

для пользователей Dockerfile: добавьте следующую строку

    RUN docker-php-ext-install mysqli

Ответ 15

Возможно, это не проблема для вас, но я боролся с этой ошибкой. Я обнаружил, что стало причиной моей проблемы, хотя я не могу объяснить, почему.

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

После попыток выяснить, что дает мне белый экран "Ошибка 500" из этой "Роковой ошибки PHP", я просмотрел код и наткнулся на этот код в обработке ошибок, которая была предложена в Руководстве по PHP (https://www.php.net/manual/en/mysqli.error.php).

if (!mysqli_query($link, "SET a=1")) {
    printf("Error message: %s\n", mysqli_error($link));
}

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

Ответ 16

Мой сайт размещен на хостинге Godaddy Linux, и я получаю ту же ошибку. У меня нет root-доступа или php.ini-доступа, и когда я позвонил в службу поддержки клиентов, они сказали мне, что это не поддерживается Godday. Любое альтернативное решение для этого вместо установки модулей из корня?