Quelle est la manière préférée de se connecter à une base de données postgresql depuis PHP ?

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

  •  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 ?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top