<?php
try {
$dbh = new PDO('pgsql:Host=localhost;port=5432;dbname=###;user=###;password=##');
echo "PDO connection object created";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
Je reçois le message d'erreur "Impossible de charger le pilote"
Essaye ça:
Décommentez ce qui suit dans php.ini en supprimant le ";"
;extension=php_pgsql.dll
Utilisez le code suivant pour vous connecter à un serveur de base de données postgresql:
pg_connect("Host=localhost dbname=dbname user=username password=password")
or die("Can't connect to database".pg_last_error());
Vous devez installer le module pgsql pour php . Dans Debian/Ubuntu, cela ressemble à ceci:
Sudo apt-get install php5-pgsql
Ou si le paquet est installé, vous devez activer le module dans php.ini
extension=php_pgsql.dll (windows)
extension=php_pgsql.so (linux)
Greatings.
J'ai installé PHP sur Windows IIS à l'aide de Windows Platform Installer (WPΙ). WPΙ crée un outil "PHP Manager" dans la console "Internet Information Services (IIS) Manager". Je configure PHP à l'aide de cet outil.
dans http://php.net/manual/en/pdo.installation.php dit:
PDO et tous les principaux pilotes sont livrés avec PHP en tant qu'extensions partagées et doivent simplement être activés en modifiant le fichier php.ini: Extension = php_pdo.dll
donc j'ai activé l'extension en utilisant PHP Manager et maintenant PDO fonctionne bien
PHP manager simple a ajouté les deux lignes suivantes dans mon php.ini, vous pouvez les ajouter à la main. Bien sûr, vous devez redémarrer le serveur Web.
[PHP_PDO_PGSQL]
extension = php_pdo_pgsql.dll
il suffit d'installer le pilote de base de données:
apt-get install php5-pgsql php5-mysql php5-sqlite ... et ainsi de suite ...
et soyez heureux!
Dans Apache, je modifie le fichier de configuration suivant: C:\xampp\php.ini
Je m'assure de ne pas commenter les lignes suivantes:
extension=php_pgsql.dll
extension=php_pdo_pgsql.dll
Enfin, redémarrez Apache avant de tenter une nouvelle connexion au moteur de base de données.
De plus, je laisse mon code qui garantit que la connexion est unique:
private static $pdo = null;
public static function provideDataBaseInstance() {
if (self::$pdo == null) {
$dsn = "pgsql:Host=" . Host .
";port=5432;dbname=" . DATABASE .
";user=" . POSTGRESQL_USER .
";password=" . POSTGRESQL_PASSWORD;
try {
self::$pdo = new PDO($dsn);
} catch (PDOException $exception) {
$msg = $exception->getMessage();
echo $msg .
". Do not forget to enable in the web server the database
manager for php and in the database instance authorize the
ip of the server instance if they not in the same
instance.";
}
}
return self::$pdo;
}
GL
Je dois ajouter dans httpd.conf cette ligne (Windows):
LoadFile "C:/Program Files (x86)/PostgreSQL/8.3/bin/libpq.dll"
De nombreuses personnes et moi-même avons passé beaucoup de temps à raser - cela nécessite une amélioration considérable. Après avoir passé des heures, j'ai finalement copié php_pgsql.dll du répertoire ext de php dans le répertoire racine d'Apache24 (où que vous soyez installé) et Apache a finalement pu charger les modules et les dll de php/pg.
Pour l'installation de debian/ubuntu
Sudo apt-get install php-pgsql
Vous devez installer le paquet pdo_pgsql