PHP с базой данных postgresql - PullRequest
       16

PHP с базой данных postgresql

0 голосов
/ 24 августа 2009

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

Заранее спасибо

Обновление: это мой код

function execute_query($dbName,$query){ 
  $host = "localhost"; 
  $user = "postgres"; 
  $pass = ""; 
  $db = "test"; 
  echo "before create connection"; 
  $con = pg_connect ("host=$host dbname=$db user=$user password=$pass"); 
  echo "After connection is created"; 
  if (!$con) { 
    echo "not connected"; 
//   die('Could not connect: ' . mysql_error());
  } 
  $result = pg_query($con, $query); 
  pg_close($con); 
  return $result; 
}

Выход: отображать сообщение «до подключения», но не отображать сообщение «после подключения» или «не подключен».

Ответы [ 5 ]

7 голосов
/ 24 августа 2009

Вероятно, проблема связана с ошибкой PHP, которая записывается в файл журнала. Найдите файл журнала или включите отображение ошибок журнала на своей странице, используя следующую строку вверху скрипта:

ini_set('display_errors', '1');
error_reporting(E_ALL | E_STRICT);

Это краткосрочное решение, и его нельзя использовать при развертывании (где вы хотите установить display_errors на 0). Для долгосрочного решения вы действительно хотите найти журнал ошибок Apache или PHP и tail it.

Чтобы попытаться найти журнал ошибок, запустите следующий скрипт:

<?php phpinfo(); ?>

В разделе Конфигурация> Ядро PHP найдите error_log. Если это не установлено, вы можете установить его в файле php.ini. Все ошибки будут записаны в этот файл, даже если для display_errors установлено значение 0.

2 голосов
/ 24 августа 2009

Добавьте php-файл на ваш сервер и поместите его в этот файл:

<?php
echo phpinfo();
?>

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

pgsql

PostgreSQL Support  enabled
PostgreSQL(libpq) Version   8.2.3
Multibyte character support enabled
SSL support disabled
Active Persistent Links 0
Active Links    0
0 голосов
/ 24 августа 2009

Кажется, у вашего php нет поддержки postgresql, ср. http://us.php.net/manual/en/ref.pgsql.php:

Примечание: поддерживаются не все функции по всем билдам. Это зависит от вашего libpq (клиент PostgreSQL C библиотека) версия и как libpq скомпилирован. Если расширения PHP PostgreSQL отсутствуют, то это потому, что ваш Версия libpq не поддерживает их.

0 голосов
/ 24 августа 2009

Вы можете установить уровень сообщения об ошибках php в своем ini-файле, если это локальный сервер разработки.

0 голосов
/ 24 августа 2009

Попробуйте проверить журнал ошибок вашего веб-сервера (например, /var/log/apache2/error.log - это обычное место для журнала Apache2) и посмотрите, есть ли там ошибка, сообщенная PHP.

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