Какой предпочтительный способ подключения к базе данных postgresql из PHP?

Я давно использую PHP и MySQL и собираюсь начать использовать PostgreSQL.

Какой метод предпочтительнее?

Это через объекты PDO или есть что-то лучше?

14.08.2008 00:36:20
6 ОТВЕТОВ
РЕШЕНИЕ

Объекты PDO - это новая жара. Я бы порекомендовал это, если вы можете быть уверены, что ваша целевая платформа всегда будет работать под управлением PHP 5.2+.

Есть много других уровней абстракции базы данных, которые поддерживают PostgreSQL, которые совместимы со старыми версиями PHP; Я бы порекомендовал ADODB .

Вы действительно должны использовать PDO или другой уровень абстракции даже для своей работы с MySQL; Таким образом, у вас не будет этой проблемы снова!

4
14.08.2008 00:54:51

Лично я использую PDO для всей моей работы с базой данных, когда у меня есть выбор. Подготовленные операторы облегчают мою жизнь, и между системами баз данных она становится прозрачной - это удобно, если вам приходится работать с той, к которой вы не привыкли.

Если вы хотите свернуть собственную абстракцию или использовать процедурную модель, вот функции Postgre: http://ca.php.net/manual/en/ref.pgsql.php

1
14.08.2008 00:55:59

Я бы также предложил создать унаследованный класс PDO или класс-оболочку, если вы решите не использовать PDO. Это обеспечит вам большую гибкость в будущем. то есть. Расчет времени выполнения запроса.

0
14.08.2008 04:46:37

Используя Zend Db:

require_once 'Zend/Db.php';
$DB_ADAPTER = 'Pdo_Pgsql';
$DB_CONFIG = array(
    'username' => 'app_db_user',
    'password' => 'xxxxxxxxx',
    'host'     => 'localhost',
    'port'     => 5432,
    'dbname'   => 'mydb'
);
$db = Zend_Db::factory($DB_ADAPTER, $DB_CONFIG);
2
14.08.2008 05:11:13

В зависимости от масштаба вашего приложения вы можете рассмотреть количество подключений к бэкэнду. Похоже, что консенсус заключается в том, что постоянные соединения PHP и PostgreSQL плохо работают вместе, поэтому что-то вроде pgpool- || следует использовать в качестве посредника.

0
14.08.2008 05:31:03

Есть также функции pg_whither , но не используйте их.

Они используют старые, не поддерживаемые драйверы базы данных. PDO это путь.

1
20.09.2008 05:01:18