Какой предпочтительный способ подключения к базе данных postgresql из PHP? - PullRequest
5 голосов
/ 14 августа 2008

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

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

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

Ответы [ 6 ]

4 голосов
/ 14 августа 2008

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

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

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

2 голосов
/ 14 августа 2008

Использование 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);
1 голос
/ 20 сентября 2008

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

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

1 голос
/ 14 августа 2008

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

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

0 голосов
/ 14 августа 2008

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

0 голосов
/ 14 августа 2008

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

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