Подтвердить что ты не робот

Вызов функции undefined mysql_connect

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

fatal error: call to undefined function mysql_connect.

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

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

4b9b3361

Ответ 1

После просмотра вашего вывода 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.

Ответ 2

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

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

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

фатальная ошибка: вызов функции undefined mysql_connect.

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

Ответ 3

Мой компьютер работает под управлением 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 работают вместе!

Ответ 4

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

Ответ 5

Проверьте ваш 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, прежде чем повторять попытку.

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

Ответ 6

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

; php.ini
error_reporting = E_ALL & ~E_DEPRECATED

Ответ 7

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

Ответ 8

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

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

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

Ответ 9

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

Ответ 10

Просто для справки в будущем, копирование всех этих файлов расширения в Windows/System или Windows/System32 не требуется.

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

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

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

Ответ 11

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

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

;; extension=php_mysql.dll

to

extension=php_mysql.dll

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

Ответ 12

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

Ответ 13

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