Я только что установил 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