Я пытаюсь подключить PHP 5.4.22 и MySQL 5.5 с Apache 2.4.7 в качестве веб-сервера. Все три из них индивидуально работают нормально. Однако, когда я пытаюсь подключиться к PHP с MySQL, я получаю ошибку:
«Неустранимая ошибка: вызов неопределенной функции mysqli_connect () в …»
$con = mysqli_connect("localhost","root","root","mylab_dev"); if (mysqli_connect_errno($con)) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $conn->close();
ServerRoot "c:/Apache24" #Listen 12.34.56.78:80 Listen 80 LoadModule php5_module "C:/php/php5apache2_4.dll" (Verified the existence of the physical file) AddHandler application/x-httpd-php .php DirectoryIndex index.php index.html PHPIniDir c:/php
Модифицированный файл php.ini-development для php.ini
; extension_dir = "./" ; On windows: extension_dir = "ext" extension=php_mysql.dll --> Uncommented extension=php_mysqli.dll --> Uncommented
Установите соответствующий часовой пояс даты
Одна вещь, которую я заметил, но не уверен, что это причина, на phpinfo()
я вижу информацию MySQL, но я не вижу ничего, что говорит mysqli()
. Нужно ли мне?
У меня была такая же ошибка, и я исправил ее следующими шагами:
sudo apt-get install php5-mysql sudo service apache2 restart
Прежде всего, убедитесь, что вы редактируете правильный php.ini
, установив phpinfo()
.
Я написал эти инструкции главным образом для пользователей Windows:
Отредактируйте свой php.ini
.
Проверьте правильность установки переменной extension-dir
. Если нет, укажите правильный путь в соответствии с вашей ОС.
extension_dir = "C:\Program Files\php\ext"
Не комментируйте эти строки, удалив ;
(точка с запятой):
extension=php_mysql.dll extension=php_mysqli.dll
Это соединение для PHP 5.5 / MySQL, похоже, работает на меня.
$host = "localhost"; $db = "mydatabse"; // Database name $user = "my_username"; // User $pass = "my_passxx"; // Password // My PHP 5.5 method of connecting to the database $mysqli = new mysqli("$host", "$user", "$pass", "$db"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; exit(); }
Найдите путь для php.ini, установив флажок phpinfo (). Скопируйте файл php.ini по адресу, указанному в пути.
Это удалит и заменит пакеты PHP 5.5.9 по умолчанию, которые поставляются с Ubuntu 14.04, с версиями ppa.
sudo aptitude install pkg-php-tools php5.6 php5.6-cgi php5.6-cli php5.6-dbg php5.6-common php5.6-curl php5.6-gd php5.6-imap php5.6-intl php5.6-mysql php5.6-pspell php5.6-sqlite3 php5.6-tidy php5.6-opcache php5.6-json php5.6-bz2 php5.6-mcrypt php5.6-readline php5.6-xmlrpc php5.6-enchant php5.6-xsl php-all-dev php7.0 php7.0-cgi php7.0-cli php7.0-common php7.0-dbg php7.0-curl php7.0-enchant php7.0-gd php7.0-imap php7.0-intl php7.0-ldap php7.0-mcrypt php7.0-readline php7.0-pspell php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-json php7.0-sqlite3 php7.0-mysql php7.0-opcache php7.0-bz2 libapache2-mod-php7.0