Quelle est la manière préférée de se connecter à une base de données postgresql depuis PHP ?
-
08-06-2019 - |
Question
J'utilise PHP et MySQL depuis des lustres et je suis sur le point de commencer à utiliser PostgreSQL à la place.
Quelle est la méthode privilégiée ?
Est-ce via les objets PDO ou y a-t-il quelque chose de mieux ?
La solution
Les objets PDO sont la nouvelle tendance.Je le recommanderais tant que vous pouvez vous assurer que votre plate-forme cible exécutera toujours PHP 5.2+.
Il existe de nombreuses autres couches d'abstraction de base de données prenant en charge PostgreSQL et compatibles avec les anciennes versions de PHP ;je recommanderais ADODB.
Vous devriez vraiment utiliser PDO ou une autre couche d'abstraction, même pour votre travail MySQL ;de cette façon, vous n'aurez plus ce problème !
Autres conseils
Utilisation de 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);
Personnellement, j'utilise PDO pour tous mes travaux de base de données lorsque j'ai le choix.Les instructions préparées me facilitent la vie et sont transparentes entre les systèmes de bases de données - pratique si vous devez travailler avec un système auquel vous n'êtes pas habitué.
Si vous souhaitez créer votre propre abstraction ou opter pour le modèle procédural, voici les fonctions Postgre : http://ca.php.net/manual/en/ref.pgsql.php
Il y a aussi les fonctions pg_whatever, mais ne les utilisez pas.
Ils utilisent des pilotes de base de données plus anciens et non maintenus. AOP est la voie à suivre.
Je suggérerais également de créer une classe PDO héritée ou une classe wrapper si vous décidez de ne pas utiliser PDO.Cela vous offrirait beaucoup plus de flexibilité à l’avenir.c'est à dire.Calcul du temps d'exécution des requêtes.
En fonction de l'échelle de votre application, vous souhaiterez peut-être prendre en compte le nombre de connexions vers le backend.Le consensus semble être que les connexions persistantes PHP et PostgreSQL ne fonctionnent pas bien ensemble, donc quelque chose comme pgpool-|| doit être utilisé comme intermédiaire.