Командная строка PHP mysql_connect () Ошибка

Я запускаю php-страницу из командной строки для обновления mysql-db после завершения команды php exec. Это работает нормально.

Тем не менее, я только что переустановил свой сервер, и теперь скрипт возвращает следующую ошибку, когда я запускаю ее в командной строке:

Fatal error: Call to undefined function mysql_connect() 

Скрипт отлично работает в браузере, что означает, что mysql установлен OK. Как включить mysql в PHP для запуска из командной строки?

Большое спасибо.

Related of "Командная строка PHP mysql_connect () Ошибка"

Прежде всего, вы можете использовать

 php -m 

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

Если mysql отсутствует в списке, это означает, что он не включен / не загружен – это, вероятно, так, здесь.

Затем вы захотите использовать

 php --ini 

чтобы проверить, какие .ini файлы / читаются PHP.

Как только вы узнаете, какой файл php.ini используется, вам придется его отредактировать и добавить что-то вроде этого:

 ; configuration for php MySQL module extension=mysql.so 

Чтобы загрузить расширение mysql .

В зависимости от вашего дистрибутива может быть файл .ini на расширение (например, Ubuntu делает это) .

Если это так, вы также можете создать новый .ini файл (например, mysql.ini ) рядом с другими и поместить две строки, которые я разместил в этом новом файле.

Проверьте путь к исполняемому файлу PHP. Вы не указали, в какой ОС это находится, но, например, в OSX только запуск php выполняет встроенный PHP-интерпретатор. Если вы используете MAMP, вам нужно запустить /Applications/MAMP/bin/php5.2/bin/php (или что бы вы ни /Applications/MAMP/bin/php5.2/bin/php ), чтобы подражать тому, что работает в вашем браузере.

Измените путь к php вашего веб-сервера (на основе установки AMP, ОС и т. Д.).

У меня была аналогичная проблема совсем недавно (может быть, для вас такая же проблема):

Я указал свой предпочитаемый php.ini в конфигурации Apache. Однако это явно не влияет на PHP в CLI. Проверьте, какой php.ini используется php: php --ini . Либо измените его, либо выберите другой файл конфигурации, изменив некоторые из них:

В этих местах (в порядке) выполняется поиск php.ini:

  • Специфическое расположение модуля SAPI (директива PHPIniDir в Apache 2, опция командной строки -c в CGI и CLI, параметр php_ini в NSAPI, переменная среды PHP_INI_PATH в THTTPD)

  • Переменная среды PHPRC. Перед PHP 5.2.0 это было проверено после упомянутого ниже раздела реестра.

  • Начиная с PHP 5.2.0, расположение файла php.ini может быть установлено для разных версий PHP. Следующие ключи реестра рассматриваются в следующем порядке: [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xyz], [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xy] и [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ x], где x, y и z означают майор PHP, младшие и выпускные версии. Если в этих ключах есть значение для IniFilePath, то первое найденное будет использоваться как местоположение php.ini (только для Windows).

  • [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP], значение IniFilePath (только для Windows).

  • Текущий рабочий каталог (кроме CLI)

  • Каталог веб-сервера (для модулей SAPI) или каталог PHP (иначе в Windows)

  • Каталог Windows (C: \ windows или C: \ winnt) (для Windows) или опция -with-config-file-path compile time

Я только что изменил переменную среды PHPRC в мое предпочтительное расположение php.ini .

Для меня ответ заключался в том, чтобы изменить первую строку в моем скрипте с '#! / Usr / bin / php' на '#! / Usr / bin / php -c /etc/php.ini'.

Несмотря на то, что «php -ini» указал, что он обрабатывает правильный .ini-файл, это не так, поэтому мне пришлось принудительно его на строку заголовка скрипта.