web-dev-qa-db-fra.com

Comment puis-je activer php pour fonctionner avec postgresql?

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

29
Aaron

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());
37
Sachin Puri

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.

68
Jorge Olivares

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!

2
augustowebd
  • SO: Windows/Linux
  • Serveur Web HTTP: Apache
  • Langage de programmation: PHP

Activer PHP pour utiliser PostgreSQL dans Apache

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

1
IT Developers

Je dois ajouter dans httpd.conf cette ligne (Windows):

LoadFile "C:/Program Files (x86)/PostgreSQL/8.3/bin/libpq.dll"
1
Wojciech Legierski

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.

0
user5699115

Pour l'installation de debian/ubuntu

Sudo apt-get install php-pgsql
0
Nadav B

Vous devez installer le paquet pdo_pgsql

0
rinat.io