it-swarm.com.de

Wie kann ich PHP mit postgresql zusammenarbeiten?

<?php

try {
   $dbh = new PDO('pgsql:Host=localhost;port=5432;dbname=###;user=###;password=##');
   echo "PDO connection object created";
}
catch(PDOException $e)
{
      echo $e->getMessage();
}

?>

Ich erhalte die Fehlermeldung "Treiber konnte nicht geladen werden"

29
Aaron

Versuche dies:

Kommentieren Sie Folgendes in php.ini, indem Sie das ";"

;extension=php_pgsql.dll

Verwenden Sie den folgenden Code, um eine Verbindung zu einem Postgresql-Datenbankserver herzustellen:

pg_connect("Host=localhost dbname=dbname user=username password=password")
    or die("Can't connect to database".pg_last_error());
37
Sachin Puri

Sie müssen das pgsql-Modul für php ..__ installieren. In debian/ubuntu sieht es so aus:

Sudo apt-get install php5-pgsql

Wenn das Paket installiert ist, müssen Sie das Modul in php.ini aktivieren

extension=php_pgsql.dll (windows)
extension=php_pgsql.so (linux)

Greatings.

68
Jorge Olivares

Ich habe PHP unter Windows IIS mit Windows Platform Installer (WPΙ) installiert. WPΙ erstellt in der Konsole "Internet Information Services (IIS) Manager" ein "PHP Manager" -Tool. Ich konfiguriere PHP mit diesem Tool.

in http://php.net/manual/de/pdo.installation.php sagt:

PDO und alle wichtigen Treiber werden mit PHP als gemeinsam genutzte Erweiterungen ausgeliefert. Sie müssen lediglich durch Bearbeiten der Datei php.ini aktiviert werden: Extension = php_pdo.dll

also habe ich die Erweiterung mit dem PHP Manager aktiviert und jetzt funktioniert PDO gut

PHP Manager fügte einfach die folgenden zwei Zeilen in meiner php.ini hinzu, Sie können die Zeilen von Hand hinzufügen. Natürlich müssen Sie den Webserver neu starten.

[PHP_PDO_PGSQL]
erweiterung = php_pdo_pgsql.dll

installieren Sie einfach den Datenbanktreiber:

apt-get install php5-pgsql php5-mysql php5-sqlite ... und so weiter ...

und sei glücklich!

2
augustowebd
  • SO: Windows/Linux
  • HTTP-Webserver: Apache
  • Programmiersprache: PHP

Aktivieren Sie PHP, um mit PostgreSQL in Apache zu arbeiten

In Apache bearbeite ich folgende Konfigurationsdatei: C:\xampp\php.ini

Ich stelle sicher, dass die folgenden Zeilen unkommentiert sind:

extension=php_pgsql.dll 
extension=php_pdo_pgsql.dll

Starten Sie Apache schließlich neu, bevor Sie eine neue Verbindung zur Datenbank-Engine herstellen.


Ich lasse auch meinen Code, der sicherstellt, dass die Verbindung eindeutig ist:

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

Ich muss in httpd.conf diese Zeile hinzufügen (Windows):

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

Ich und viele andere Rasuren haben viel zu lange damit verbracht - dies bedarf einer massiven Verbesserung. Nach Stunden habe ich schließlich php_pgsql.dll aus dem php-Verzeichnis ext in das Stammverzeichnis von Apache24 kopiert (wo auch immer Sie es installiert haben), und schließlich konnte Apache die php/pg-Module und dlls laden.

0
user5699115

Für Debian/Ubuntu installieren

Sudo apt-get install php-pgsql
0
Nadav B

Sie müssen das Paket pdo_pgsql installieren

0
rinat.io