Неустранимая ошибка: вызов неопределенной функции pg_connect () - PullRequest
31 голосов
/ 16 сентября 2011

Я пытаюсь подключиться к моей базе данных (удаленному серверу), на которой установлен PostgreSQL.Мой PHP-код пытается подключиться к базе данных с помощью pg_connect (), но я получаю сообщение об ошибке: - «Неустранимая ошибка: вызов неопределенной функции pg_connect () в /var/www/website/functions.php в строке 82».

Строка 82 просто такова:

$db = pg_connect($conn_string);
where $conn_string = "host=".$hostname." port=5432 dbname=".$dbname." user=".$db_user." password=".$db_password.""

(все переменные, определенные ранее)

Я проверил много форумов, и единственным предложенным решением было найти файл php.ini, которыйсодержит строку: - extension = pgsql.so (для UNIX) и extension = php_pgsql.dll (для Windows).

Предполагается, что это утверждение будет прокомментировано, и решение состоит в том, чтобы раскомментировать его.Я пробовал это, но все еще не меняет ситуацию.Удаленный сервер имеет версию, более позднюю, чем установленная PostgreSQL v9.0.4.Затем я установил PostgreSQL v8.4.8 на свой ноутбук и запустил сайт локально, используя MAMP.Сначала Apache потерпел крах по какой-то странной причине, я исправил эту проблему, но снова у меня возникла та же ошибка, что и раньше, т.е. фатальная ошибка: вызов неопределенной функции pg_connect () ....

Я также запустилphpinfo() и это показало, что версия php поддерживает модуль PostgreSQL. Я потратил целый день на поиск решения, но безуспешно.Это мой первый проект по разработке веб-сайта, и я сошел с ума.Любая помощь будет высоко оценена.

phpinfo () дает мне огромный список вещей в терминале, но списки, относящиеся к PostgreSQL, выглядят следующим образом: -

pdo_pgsql

PDO Driver for PostgreSQL => enabled
PostgreSQL(libpq) Version => 9.0.4
Module version => 1.0.2
Revision =>  $Id: pdo_pgsql.c 306939 2011-01-01 02:19:59Z felipe $ 

pgsql

PostgreSQL Support => enabled
PostgreSQL(libpq) Version => 9.0.4
Multibyte character support => enabled
SSL support => enabled
Active Persistent Links => 0
Active Links => 0

Directive => Local Value => Master Value
pgsql.allow_persistent => On => On
pgsql.auto_reset_persistent => Off => Off
pgsql.ignore_notice => Off => Off
pgsql.log_notice => Off => Off
pgsql.max_links => Unlimited => Unlimited
pgsql.max_persistent => Unlimited => Unlimited

Я перезапустилMAMP после каждого редактирования, которое я сделал, так как оно упоминалось в каждом посте, который я прочитал до сих пор.Я считаю, что сбрасывает Apache и php.

'pqsql.so' (который в UNIX эквивалентен 'php_pqsql.dll' в Windows) присутствует в каталоге 'extension'.Я также скопировал и вставил файл pqsql.so в каталог Apache / bin, но он не дал мне никаких изменений.

Я не запускаю php в командной строке.Мне просто было любопытно посмотреть, что phpinfo () даст мне отношение к pgsql, о котором я упоминал в своем ответе выше.

Я все еще работаю над инструментами, которые вы упомянули, и отвечу, как только получуРезультаты.

Спасибо, H

Ответы [ 15 ]

0 голосов
/ 05 мая 2015

В ОС Windows найдите это в php.ini "php_pgsql.dll" и удалите ";" в расширении то и все :) ура!

0 голосов
/ 27 апреля 2015

установите необходимый пакет.если вы используете yum:

yum search pgsql

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

yum install *paste the name of the package here*
0 голосов
/ 06 марта 2015

Для тех из вас, у кого есть эта проблема с PHP 5.6, вы можете использовать следующую команду:

yum install php56w-pgsql

Чтобы получить список других имен пакетов для PHP 5.6, откройте следующую ссылку и прокрутите вниз допакеты:

PHP 5.6 для CentOS / RHEL 7.0 и 6.6 через Yum

0 голосов
/ 22 октября 2014

В Gentoo используйте USE-флаг postgres в /etc/portage/make.conf и повторно введите emerge php

0 голосов
/ 25 февраля 2014

Я столкнулся с этой ошибкой, и она оказалась связанной с тем, как загружался PHP extension_dir.

Если после печати phpinfo () вы обнаружите, что под заголовком PDO Драйверы PDO установлены на без значения , вы можете проверить, успешно ли загружается каталог расширений как подробно в этом посте:

https://stackoverflow.com/a/14786808/2578505

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...