Я уже давно использую PHP & MySQL и собираюсь начать использовать PostgreSQL вместо него.
Какой метод предпочтительнее?
Это через объекты PDO или есть что-то лучшее?
Объекты PDO - это новое веяние. Я бы рекомендовал это, если вы можете гарантировать, что на вашей целевой платформе всегда будет работать PHP 5.2+.
Существует множество других уровней абстракции баз данных, которые поддерживают PostgreSQL и совместимы со старыми версиями PHP; я'рекомендую ADODB.
Вам действительно следует использовать PDO или другой уровень абстракции даже для работы с MySQL; таким образом, вы больше не столкнетесь с этой проблемой!
Используя пехлеви 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);
Лично я использую PDO для работы с базами данных, когда у меня есть выбор. Подготовленные операторы облегчают мне жизнь, и он легко переходит от одной системы баз данных к другой - удобно, если вам приходится работать с той, к которой вы не привыкли.
Если вы хотите создать свою собственную абстракцию или перейти к процедурной модели, вот функции Postgre: http://ca.php.net/manual/en/ref.pgsql.php.
Есть также функции pg_whatever, но don' t используют их.
Они используют несохраняемых водителей базы данных старшего возраста. PDO - способ пойти.
В зависимости от масштаба Вашего заявления Вы могли бы хотеть рассмотреть количество связей, идущих в бэкенд. Согласие, кажется, что постоянные связи PHP и PostgreSQL don' t работают хорошо вместе, таким образом, что-то как [pgpool-||] [1] должно использоваться в качестве посредника.
[1]: http://pgpool.projects.postgresql.org/" pgpool-II"