<?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"
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());
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.
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!
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
Ich muss in httpd.conf diese Zeile hinzufügen (Windows):
LoadFile "C:/Program Files (x86)/PostgreSQL/8.3/bin/libpq.dll"
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.
Für Debian/Ubuntu installieren
Sudo apt-get install php-pgsql
Sie müssen das Paket pdo_pgsql installieren