Я запустил aptitude install php5-mysql
(и перезапустил MySQL / Apache 2), но все еще получаю эту ошибку:
Неустранимая ошибка: вызов неопределенной функции mysql_connect () в /home/validate.php в строке 21
phpinfo()
говорит, что файл /etc/php5/apache2/conf.d/pdo_mysql.ini был проанализирован.
php
mysql
ubuntu
mysql-connect
undefined-function
user1765369
источник
источник
Ответы:
Что ж, это твой шанс! Похоже, PDO готов; используйте это вместо этого.
Попробуйте проверить, загружается ли модуль расширения PHP MySQL:
<?php phpinfo(); ?>
Если его там нет, добавьте в
php.ini
файл следующее:extension=php_mysql.dll
источник
mysql_*
функции опасны и устарели с PHP 4.1. Проверьте журналы ошибок Apache и перезапустите сервер. Это работает?В случае, если вы уже используете PHP7, ранее устаревшие функции
mysql_*
были полностью удалены, поэтому вам следует обновить свой код, используяmysqli_*
вместо них функции или функции PDO .Если это невозможно, в качестве обходного пути я создал небольшой включаемый файл PHP, который воссоздает старые
mysql_*
функции с помощью -functionsmysqli_*()
: fix_mysql.inc.phpисточник
Я вижу, что вы отметили это как 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.
$ docker-php-ext-install mysql mysqli pdo pdo_mysql
Для получения дополнительной информации перейдите по ссылке выше в
How to install more PHP extensions
разделе (но для меня это немного сложно ...).Или этот документ может вам помочь.
источник
mysql
это то, что я хочуЯ также столкнулся с той же проблемой неопределенного 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.
Я надеюсь, что это поможет вам . У меня это решение работает правильно.
РЕДАКТИРОВАТЬ:
Если вы обновляете старый php, вам необходимо
apt-get install php7.0-mysql
источник
В файле php.ini
изменить это
;extension=php_mysql.dll
в
extension=php_mysql.dll
источник
Пытаться:
<?php phpinfo(); ?>
Запустите страницу и найдите
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.
Проверьте свою команду настройки (
php -i | grep mysql
). Вы должны увидеть что-то вроде'--with-mysql=shared,/usr'
.Вы можете проверить полные инструкции на http://php.net/manual/en/mysql.installation.php . Хотя я бы предпочел решение, предложенное @wanovak.
Тем не менее, я думаю, вам нужна поддержка MySQL, чтобы использовать PDO.
источник
Вопрос помечен
ubuntu
, но решение не комментировать вопросextension=mysqli.dll
относится к windows. Я запутался здесь?!, В любом случае, сначала запустите<? 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>
, ELSEextension=path/to/msql.so
Затем , наконец , перезапустить
apache
иmysql
услуги, и теперь вы должны увидетьmysql
раздел подConfigrations
заголовком вphpinfo page
источник
Я получал эту ошибку, потому что проект, над которым я работал, был разработан на php 5.6, и после установки проект не смог запустить на php7.1.
Для всех, кто использует Vagrant с ubuntu / nginx, в каталоге nginx (/ etc / nginx /) есть каталог с именем «sites-available», который содержит файл с именем, похожим на URL-адрес, настроенный для vagrant maschine. В моем случае это был homestead.app. В этом файле есть строка, которая говорит что-то вроде
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
Там вы можете изменить версию php на желаемую для этого конкретного сайта.
Погуглил, но не смог найти простого ответа, в котором говорилось бы, где искать и что менять.
Надеюсь, что это кому-нибудь поможет. Благодарю.
источник
Для CentOS 7.8 и PHP 7.3
yum install rh-php73-php-mysqlnd
А затем перезапустите apache / php.
источник
Если вы получаете сообщение об ошибке как
Пожалуйста, войдите в cPanel >> Нажмите Выбрать версию Php >> выберите расширение MYSQL
источник
Должна быть какая-то синтаксическая ошибка. Скопируйте / вставьте этот код и посмотрите, работает ли он:
<?php $link = mysql_connect('localhost', 'root', ''); if (!$link) { die('Could not connect:' . mysql_error()); } echo 'Connected successfully'; ?
У меня было такое же сообщение об ошибке. Оказывается, я использовал
msql_connect()
функцию вместоmysql_connect()
.источник
(Конфигурация Windows mysql)
Шаг 1. Перейдите в Панель управления Apache> Apache> Конфигурация> PHP.ini
Шаг 2: Найдите в Блокноте (Ctrl + F) для:
;extension_dir = ""
(можно прокомментировать с помощью;
). Замените эту строку на:extension_dir = "C:\php\ext"
(пожалуйста, не удаляйте;
в начале предложения).Шаг 3: Найдите:
extension=php_mysql.dll
и удалите;
в начале.Шаг 4: Сохраните и перезапустите HTTP-сервер Apache. (В Windows это обычно делается через пользовательский интерфейс)
Это оно :)
Если вы получите сообщение об отсутствии,
php_mysql.dll
вам, вероятно, придется загрузить этот файл либо с сайта php.net, либо с pecl.php.net. (Пожалуйста, объясните, откуда вы его взяли)Подробнее о PHP: Установка расширений в Windows - Руководство
источник
C:\\php
в системе.