Неопределенная функция mysql_connect ()

Я запустил aptitude install php5-mysql (и перезапустил MySQL / Apache 2), но я все еще получаю эту ошибку:

Неустранимая ошибка: вызов функции undefined mysql_connect () в /home/validate.php в строке 21

phpinfo() говорит, что файл /etc/php5/apache2/conf.d/pdo_mysql.ini был проанализирован.

    Ну, это ваш шанс! Похоже, PDO готов; используйте это вместо этого.

    Попробуйте проверить, загружен ли модуль расширения PHP MySQL:

     <?php phpinfo(); ?> 

    Если его нет, добавьте следующее в файл php.ini :

     extension=php_mysql.dll 

    Я вижу, что вы отметили это с помощью Ubuntu. Скорее всего, драйвер MySQL (и, возможно, MySQL) не установлен. Предполагая, что у вас есть SSH или доступ к терминалу и sudo-разрешения, войдите в сервер и запустите это:

     sudo apt-get install mysql-server mysql-client php5-mysql 

    Если пакеты MySQL или пакет php5-mysql уже установлены, это обновит их.


    ОБНОВИТЬ

    Поскольку этот ответ по-прежнему получает случайный щелчок, я собираюсь обновить его, включив PHP 7 . Для PHP 7 требуется другой пакет для MySQL, поэтому вы захотите использовать другой аргумент для команды apt-get.

     sudo apt-get install mysql-server mysql-common php7.0 php7.0-mysql 

    И что важно, mysql_connect() устарел с PHP v5.5.0. Обратитесь к официальной документации здесь: PHP: mysql_connect ()

    Если кто-то пришел сюда с проблемой официальных изображений docker php , введите команду ниже внутри контейнера докера.

     $ docker-php-ext-install mysql mysqli pdo pdo_mysql 

    Для получения дополнительной информации см. Приведенную выше ссылку « How to install more PHP extensions разделов How to install more PHP extensions » (но для меня это немного сложно).

    В случае, если вы уже используете PHP7, ранее устаревшие функции mysql_* были полностью удалены, поэтому вы должны обновить свой код с помощью PDO-функций или функций mysqli_* .

    Если это невозможно, в качестве обходного пути я создал небольшой файл include, который воссоздает старые функции с помощью mysqli_*() -функций: fix_mysql.inc.php

    Пытаться:

     <?php phpinfo(); ?> 

    Запустите страницу и mysql поиск mysql . Если не найден, запустите в командной оболочке и перезапустите сервер Apache:

     sudo apt-get install mysql-server mysql-client php5-mysql 

    Также убедитесь, что у вас есть все следующие строки без комментариев в файле apache2.conf (или в вашем файле conf.d / php.ini), начиная с

     ;extension=php_mysql.so 

    в

     extension=php_mysql.so 

    Я предполагаю, что ваша установка PHP не была скомпилирована с поддержкой MySQL.

    Проверьте свою команду configure ( php -i | grep mysql ). Вы должны увидеть что-то вроде '--with-mysql=shared,/usr' .

    Вы можете проверить полные инструкции по адресу http://php.net/manual/en/mysql.installation.php . Хотя, я бы предпочел пойти с решением, предложенным @wanovak.

    Тем не менее, я думаю, вам нужна поддержка MySQL, чтобы использовать PDO.

    Я также придерживался той же проблемы с неопределенным MySQL_connect (). Я попытался внести изменения в файл PHP.ini, но это дало мне ту же ошибку. Затем я пришел к этому решению, где я изменил свой код с обесцененных функций php на новые функции.

     $con=mysqli_connect($host,$user,$password); mysqli_select_db($con,dbname); //To select the database session_start(); //To start the session $query=mysqli_query($con,your query); //made query after establishing connection with database. 

    Я надеюсь, что это поможет вам . Это решение правильно работает для меня.

    Вопрос отмечен с помощью ubuntu , но решение об extension=mysqli.dll комментировании extension=mysqli.dll относится к окнам. Я запутался здесь?! В любом случае, первое, что бежит <? php phpinfo ?> <? php phpinfo ?> и найдите mysql* под заголовком Configuration . Если вы этого не видите, это означает, что вы не установили или не включили php-mysql . Поэтому сначала установите php-mysql

    sudo apt get install php-mysql

    Эта команда установит php-mysql зависимости от того, какой php вы уже установили, поэтому не беспокойтесь о версии !!.

    Затем приходит специальное решение unix, в файле php.ini не комментируется строка

     extension=msql.so 

    убедитесь, что msql.so присутствует в /usr/lib/php/<timestamp_folder> , ELSE

     extension=path/to/msql.so 

    Затем, наконец, перезапустите службы apache и mysql , и теперь вы должны увидеть раздел mysql разделе « Configrations на phpinfo page

    В файле php.ini

    изменить это

     ;extension=php_mysql.dll 

    в

     extension=php_mysql.dll 

    Я получал эту ошибку, потому что проект, над которым я работал, был разработан на php 5.6 и после установки проект не смог работать на php7.1.

    Только для тех, кто использует Vagrant с ubuntu / nginx, в каталоге nginx (/ etc / nginx /) существует каталог с именем «sites-available», который содержит файл с именем, подобным URL-адресу, настроенному для бродячего maschine. В моем случае была homestead.app. Внутри этого файла есть строка, которая говорит что-то вроде

      fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; 

    Там вы можете изменить версию php на желаемый для этого конкретного сайта.

    Googled это, но не смог найти простой ответ, который сказал, где искать и что менять.

    Надеюсь, что это поможет кому угодно. Благодарю.

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

     <?php $link = mysql_connect('localhost', 'root', ''); if (!$link) { die('Could not connect:' . mysql_error()); } echo 'Connected successfully'; ? 

    У меня было такое же сообщение об ошибке. Оказывается, я использовал msql_connect() вместо mysql_connect() .

    Шаг 1. Откройте панель управления Apache> Apache> Config> PHP.ini

    Шаг 2: Поиск в блокноте (Ctrl + F) Для: extension_dir = "". Замените эту строку: extension_dir = "C: \ php \ ext"

    Шаг 3: Поиск: расширение = php_mysql.dll и удалить ; в попрошайничестве.

    Шаг 4: Сохраните и перезапустите панель управления Apache.

    Это оно 🙂

    Если вы получаете ошибку как

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

    Пожалуйста, войдите в cPanel >> Нажмите кнопку Выбрать версию Php >> выберите расширение MYSQL