2013-08-14 15 views
10

Ich versuche eine Webanwendung zu entwickeln, die sich mit so vielen verschiedenen Datenbanken wie möglich in PHP verbinden kann. PDO (http://www.php.net/manual/en/book.pdo.php) scheint die richtige Schnittstelle dafür zu sein, aber ich habe Probleme, alle Erweiterungen zu installieren, die für die verschiedenen PDO Datenbanktreiber benötigt werden, die ich brauche.PHP PDO Installation unter Windows (xampp)

Bitte beachten Sie, dass ich xampp auf einem Windows 7-Rechner verwende. PHP Version 5.3.8. PDO-Treiber aktiviert mysql, odbc, sqlite, sqlite2, sqlsrv.

Ich habe erfolgreich verbunden mit den folgenden:

ich hatte kein Glück Montage oder beim Anschluss mit:

  • (GELÖST siehe unten UPDATES) Sybase (Ich habe versucht pdo_dblib [MS SQL Server (PDO)] zu bedienen und installieren, aber ohne Glück)
  • (GELÖST siehe unten UPDATES) Oracle (ich versuchte, die extension = php_pdo_oci.dll in php.ini mit der dLL zu ermöglichen, die mit xampp nach dem Neustart Apache der Server installiert wurde nicht gestartet werden konnte. Versuchte pdo_oci [Oracle (PDO)])

Ich weiß, dass ich mit der Verwendung der Datenbank-spezifische Treiber um diese 2 arbeiten können zu verwenden, aber ich würde wirklich gerne PDO verwenden für alles, was ich brauche.

Wer weiß, wie pdo_dblib und pdo_oci Treiber oder ein Windows-Computer oder irgendeine andere Art und Weise der Verbindung mit Sybase und Oracle-Datenbanken unter Verwendung von PDO installieren und aktivieren?


UPDATE

gerade erfolgreich mit Orakel verbunden mit pdo_oci. Was Sie tun müssen, ist die folgende:

Laden und installieren Sie die richtige Oracle Instant Client auf Ihrem Windows-Rechner für Beispiel instantclient_12_1 und fügen Sie den Weg zu PATH in SYSTEM Umgebungsvariablen. Hinweis: Oracle unterstützt nur 2 Versionen. Wählen Sie daher Ihre Clientversion ordnungsgemäß aus. Mach das und starte dann deinen Apache neu.Beachten Sie, dass die Verbindungszeichenfolge von hier sehr unterschiedlich ist, ist ein Beispiel, was ich verwendet:

$tns = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ".$myServer.")(PORT = 1521)))(CONNECT_DATA=(SID=".$myDB.")))"; 
$connStr = "oci:dbname=".$tns;  
$conn = new PDO($connStr,$myUser,$myPass); 

UPDATE

Gerade verbunden mit Sybase als auch mit PDO_ODBC. Was Sie brauchen, ist folgendes:

Muss Sybase ASE ODBC-Treiber, der mit dem SDK kommt. Unten finden Sie die Verbindungszeichenfolge verwendet:

$connStr = "odbc:Driver={Adaptive Server Enterprise};server=".$myServer.";port=".$myPort.";db=".$myDB; 
$conn = new PDO($connStr,$myUser,$myPass); 
+0

Darf ich fragen * warum * wollen Sie zu so vielen verschiedenen Datenbanken wie möglich verbinden? –

+0

sicher, versuche ich Informationen von verschiedenen Systemen zu sammeln, um an einem Ort angezeigt zu werden. Art wie ein Portal, um Fehlertabellen und einige Statistiken zu überwachen. – Constantinos

+0

Aktualisiert meine Post mit der Lösung für die Verbindung mit Oracle und PDO_OCI. Wenn jemand auch eine Lösung für Sybase hat, lassen Sie es uns bitte wissen – Constantinos

Antwort

3

So endlich geschafft, den ich hier vier Datenbank zu verbinden ist, wie ich es geschafft:


MySQL mit PDO_MYSQL Erweiterung schien zu installierenden Xampp musste standardmäßig nicht viel arbeiten. Hier ist der Code, den ich für die Verbindung verwendet:

$connStr = "mysql:host=".$myServer.";dbname=".$myDB; 
$conn = new PDO($connStr,$myUser,$myPass); 

Microsoft SQL Server mit PDO_SQLSRV den Anweisungen auf http://craigballinger.com/blog/2011/08/usin-php-5-3-with-mssql-pdo-on-windows/ gefolgt. Hier ist der Code, den ich verwendet:

$connStr = "sqlsrv:Server=".$myServer.";Database=".$myDB; 
$conn = new PDO($connStr,$myUser,$myPass); 

Oracle mit pdo_oci. Downloaden und installieren Sie den richtigen Oracle Instant Client auf Ihrer Windows-Maschine, zum Beispiel instantclient_12_1, und fügen Sie den Pfad zu PATH in den Umgebungsvariablen des Systems hinzu. Hinweis: Oracle unterstützt nur 2 Versionen. Wählen Sie daher Ihre Clientversion ordnungsgemäß aus. Mach das und starte dann deinen Apache neu. Hier ist der Code, den ich verwendet:

$tns = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ".$myServer.")(PORT = 1521)))(CONNECT_DATA=(SID=".$myDB.")))"; 
$connStr = "oci:dbname=".$tns;  
$conn = new PDO($connStr,$myUser,$myPass); 

Sybase mit PDO_ODBC muss Sybase ASE ODBC-Treiber haben, die mit dem SDK kommt. Hier ist der Code, den ich verwendet habe:

$connStr = "odbc:Driver={Adaptive Server Enterprise};server=".$myServer.";port=".$myPort.";db=".$myDB; 
$conn = new PDO($connStr,$myUser,$myPass); 
Verwandte Themen