Консультация № 183193
16.05.2011, 19:53
55.00 руб.
0 11 0
Здравствуйте, уважаемые эксперты!

Вопрос по связке PHP + PostgreSQL.
Ситуация такая. Я начал делать под заказ сайт, базу данных к нему хочу оформить на PostgreSQL. Скачал и установил на домашний компьютер Apache 2.2.17, PHP 5.3.6 и PostgreSQL 8.2.4. PHP работает, пробная страница в браузере отображается. Однако не могу сделать соединение между PHP и PostgreSQL. Операционная система — Windows XP.

Опыт программирования баз данных с использованием PostgreSQL (в пределах локальной сети) достаточно велик, в то же время с PHP сейчас только начал разбираться. Поэтому нужна подробная консультация по настройке соединения PHP + PostgreSQL.

Обсуждение

Неизвестный
17.05.2011, 11:17
общий
$host = "localhost";
$user = "postgres";
$pass = "postgres";
$db = "test";

$connection = pg_connect ("host=$host dbname=$db user=$user password=$pass");
if (!$connection)
{
die("Невозможно подключится");
}
Неизвестный
17.05.2011, 11:25
общий
в phpinfo() есть раздел про postgres?
Неизвестный
17.05.2011, 14:25
общий
phpinfo() про postgres вообще ничего не выдаёт. Попытка обратиться к функциям postgres приводит к выводу в браузер совершенно пустой странички. Исходя из этого приходится делать вывод, что связь с postgres не функционирует вообще, но до причин докопаться не могу.

В то же время с программой на Delphi этот сервер работает прекрасно, замечаний вообще никаких.
Неизвестный
17.05.2011, 14:45
общий
думаю проблема с php URL >>

тут по настройкам PHP с PostgreSQL
Неизвестный
18.05.2011, 00:45
общий
Сожалею, но эффекта не возымело. Может, связка PHP + PostgreSQL под Windows вообще не работает?

Готов опробовать вообще любые идеи, вплоть до сноса имеющегося дистрибутива и установки более старого, но отлаженного. Только этот отлаженный дистрибутив ещё найти надо.
Неизвестный
18.05.2011, 00:51
общий
Кстати, как настроить вывод сообщений об ошибках?
Неизвестный
18.05.2011, 14:28
общий
[q=21123][/q]
Установите денвер

вывод ошибок настраивается в php.ini:


#E_ALL - Все предупреждения и ошибки.
#E_ERROR - Критические ошибки времени выполнения.
#E_WARNING - Предупреждения времени выполнения.
#E_PARSE - Ошибки трансляции.
#E_NOTICE - Замечания времени выполнения
#E_CORE_ERROR - Критические ошибки в момент старта PHP.
#E_CORE_WARNING - Некритические предупреждения во время старта PHP.
#E_COMPILE_ERROR - Критические ошибки времени трансляции.
#E_COMPILE_WARNING - Предупреждения времени трансляции.
#E_USER_ERROR - Сгенерированные пользователем ошибки.
#E_USER_WARNING - Сгенерированные пользователем предупреждения.
#E_USER_NOTICE - Сгенерированные пользователем замечания.

Пример:
#отображать все ошибки, предупреждения и замечания
#error_reporting = E_ALL
#показывать все ошибки, за исключением замечаний
#error_reporting = E_ALL & ~E_NOTICE
#показывать только сообщения об ошибках
#error_reporting=E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR


или

if (ini_get('display_errors') != 1) { // проверяет значение опции display_errors
ini_set('display_errors', 1); // включает вывод ошибок вместе с результатом работы скрипта
};

По умолчанию error_reporting = E_ALL & ~E_NOTICE , что означает, что мы пропускаем замечания, но сообщаем о всех остальных ошибках. На стадии разработки E_NOTICE лучше включить - помогает обнаружить потенциально опасные места.
Неизвестный
18.05.2011, 15:47
общий
Denwer уже успел попробовать, для чистоты эксперимента влепил на компьютер вторую Windows - чистую от всего ПО. На неё и поставил Denwer вместе с пакетом расширения Postgres. Denwer в ответ попросил перекомпилировать его.
Неизвестный
18.05.2011, 17:08
общий
переустановите пакет расширения Postgres
и изучите статью о оптимизации apache+php+postgres
давно
Профессор
230118
3054
21.05.2011, 20:05
общий
Оформите, пожалуйста, ответ.
Неизвестный
23.05.2011, 09:06
общий
Адресаты:
Цитата: Асмик Гаряка
Оформите, пожалуйста, ответ.

не нашол кнопку "ответ"
Форма ответа