Какой предпочтительный способ подключения к базе данных postgresql с PHP?
-
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-|| следует использовать в качестве посредника.