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

StackOverflow https://stackoverflow.com/questions/10532

  •  08-06-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

Использование 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);

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

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

Существуют также функции pg_whatever, но не используйте их.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top