Вызов неопределенной функции mysql_connect

Я только что установил PHP и Apache на своем домашнем ПК. Когда я пытаюсь вызвать функцию mysql_connect я получаю:

 fatal error: call to undefined function mysql_connect. 

Я загрузил php.ini, где у меня есть uncommented lines extension=php_mysql.dll и extension=php_mysqli.dll а также изменил каталог расширения на extension_dir = "C:\php\ext" – это каталог, где находятся файлы php_mysql.dll и php_mysqli. dll. Как я могу исправить эту проблему?

Вывод phpinfo (): http://jsfiddle.net/MMTwA/

Посмотрев на ваш phpinfo() , кажется, что расширения mysql не загружаются. Я подозреваю, что вы можете редактировать неправильный файл php.ini (может быть несколько копий). Убедитесь, что вы редактируете файл php на C: \ php \ php.ini (также проверьте, нет ли второй копии в C: \ Windows).

Кроме того, вы должны проверить свои журналы Apache на наличие ошибок (должно быть в каталоге \ logs \ в вашей установке Apache.

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

http://php.net/manual/en/install.windows.extensions.php

Другим распространенным решением является копирование libmysql.dll и php_mysql.dll из c: \ PHP в C: \ Windows \ System32.

Справочная информация о моей (аналогичной) проблеме:

Меня попросили исправить проект PHP, который использовал короткие теги. У моего PHP-сервера WAMP-сервера был short_open_tag = off . Чтобы запустить проект в первый раз, я изменил этот параметр на short_open_tag = off .

ПРОБЛЕМА Surfaced: сразу после этого изменения все мои вызовы mysql_connect () не удались. Он сделал ошибку

фатальная ошибка: вызов неопределенной функции mysql_connect.

Решение. Просто установите short_open_tag = off .

Мой компьютер работает под управлением Windows 7 (Apache 2.2 и PHP 5.2.17 и MySQL 5.0.51a), синтаксис в файле «httpd.conf» (C: \ Program Files (x86) \ Apache Software Foundation \ Apache2.2 \ conf \ httpd.conf) был чувствителен к косе. Вы можете проверить, читается ли «php.ini» из правильного каталога. Просто введите ваш браузер «localhost / index.php». Код index.php следующий:

<?php echo phpinfo(); ?>

Существует строка (не далеко от вершины), называемая «Загруженный файл конфигурации». Таким образом, если ничего не добавлено, проблема может заключаться в том, что ваш «php.ini» не читается, даже вы без комментирования (расширение = php_mysql.dll и extension = php_mysqli.dll). Итак, чтобы сделать это, я сделал следующий шаг. Мне нужно было перейти от

PHPIniDir 'c:\PHP\'

в

PHPIniDir 'c:\PHP'

Обратите внимание, что последняя косая тревожала все!

Теперь строка «Загруженный файл конфигурации» получает «C: \ PHP \ php.ini» после обновления «localhost / index.php» (до того, как я перезапустил Apache2.2), а также блок mysql. MySQL и PHP работают вместе!

Возможно, вы забыли перезапустить apache / wamp / xamp / любой веб-сервер, который вы используете, вам нужно сделать это, чтобы заставить его работать

Проверьте ваш php.ini, я использую Apache2.2 + php 5.3. и у меня была та же проблема, и после изменения php.ini, чтобы установить каталог библиотек PHP, он работал правильно. Проблема заключается в значении конфигурации extension_dir по умолчанию.

Значение по умолчанию (и WRONG) для моей рабочей среды

 ; extension_dir="ext" 

без какого-либо полного пути и прокомментировал точку с запятой.

Есть два решения, которые отлично подходят для меня.

1.- Включая эту строку в файл php.ini

 extension_dir="X:/[PathToYourPHPDirectory]/ext 

Где X: это установка вашего письма с буквой (обычно C: или D:)

2.- Вы можете попытаться просто раскомментировать, удалив точку с запятой. Включить следующую строку в файл php.ini

 extension_dir="ext" 

Оба способа отлично работали для меня, но выбирали ваши. Не забудьте перезапустить Apache, прежде чем повторять попытку.

Надеюсь, это поможет вам.

Привет, я получил эту ошибку, потому что я оставил амперсанд (&) в

 ; php.ini error_reporting = E_ALL & ~E_DEPRECATED 

Убедитесь, что вы отредактировали папку php.ini в / php, я потерял весь день, чтобы обнаружить ошибку, и, наконец, я обнаружил, что редактировал php.ini в неправильном месте.

После изменения нашего php.ini обязательно перезапустите веб-сервер Apache.

Для дальнейшего использования копирование всех этих файлов расширения в Windows / System или Windows / System32 не требуется.

Все, что требуется, это копия файла php.ini, который вы редактируете в директории PHP, чтобы скопировать в корневой каталог Windows.

phpinfo ясно объяснит ниже: Файл конфигурации (php.ini) Путь C: \ Windows

Логический смысл объяснит, что php хочет загрузить конфигурацию, расположенную в директории Windows. 🙂

Однажды у меня возникла проблема при использовании Off вместо off . И еще раз проверьте подушки … Путь должен быть точным. Также добавьте следующую строку в свою переменную окружения.

 C:\your-apache-path\bin; C:\your-php-path\bin;C:\your-mysql-path\bin 

Если вы находитесь в Windows, щелкните правой кнопкой мыши Мой компьютер , выберите свойства и перейдите на вкладку « Дополнительно » … (это Windows 7). Сначала нажмите «Дополнительные системные настройки», затем выберите вкладку « Дополнительно », а затем « Окружающая среда» . Выберите PATH и нажмите «Изменить». Сделайте копию строки в .txt-файле для резервного копирования (может быть пустым) — установите свои переменные среды … Выйдите из системы и войдите в систему.

Поскольку mysql_connect Это расширение было устарело в PHP 5.5.0, и оно было удалено в PHP 7.0.0. Вместо этого следует использовать расширение MySQLi или PDO_MySQL. по умолчанию xampp не загружает его автоматически

в файле php.ini вы должны раскомментировать

 ;; extension=php_mysql.dll 

в

 extension=php_mysql.dll 

Затем перезапустите апач, вы должны быть в порядке

Эта же проблема вызвала у меня орехи (Windows 10, Apache 2.4, MySql 5.7). По какой-то причине (вероятно, связанной с PATH), DLL не будет загружаться после раскомментации правильных расширений dll и extension_dir = "ext" в php.ini. Попробовав множество вещей, я просто изменил «ext», чтобы использовать полный путь к каталогу. Например. extension_dir = "c: / phpinstall / ext", и он сработал.

Я думаю, что вы должны использовать mysqli_connect вместо mysql_connect