Sto cercando di sviluppare un'app Web che possa connettersi a quanti più database possibili su PHP. PDO (http://www.php.net/manual/en/book.pdo.php) sembra essere l'interfaccia giusta, ma sto riscontrando problemi nell'installare tutte le estensioni necessarie per tutti i diversi driver di database PDO di cui ho bisogno.Installazione PHP PDO su Windows (xampp)
Si prega di notare che io uso xampp su una macchina Windows 7. Versione PHP 5.3.8. I driver PDO abilitati mysql, odbc, sqlite, sqlite2, sqlsrv.
Ho collegato con successo con il seguente:
- MySQL utilizzando pdo_mysql [MySQL (DOP)] (estensione sembrava essere installato su XAMPP per impostazione predefinita)
- Microsoft SQL Server utilizzando PDO_SQLSRV [MS SQL Server (PDO)] (seguito le istruzioni su http://craigballinger.com/blog/2011/08/usin-php-5-3-with-mssql-pdo-on-windows/)
ho avuto fortuna di installare o collegare con:
- (VEDI RISOLTO SOTTO GLI AGGIORNAMENTI) Sybase (ho provato ad usare e installare PDO_DBLIB [MS SQL Server (DOP)], ma senza fortuna)
- (SOLVED VEDI AGGIORNAMENTI SUCCESSIVI) Oracle (Ho provato ad abilitare l'estensione = php_pdo_oci.dll in php.ini con la DLL che è stata installata con xampp dopo aver riavviato Apache il server non è riuscito ad avviarsi. Stava cercando di usare PDO_OCI [Oracle (DOP)])
so di poter ovviare a quei 2 con l'utilizzo dei driver specifici di database, ma mi piacerebbe molto usare DOP per tutto quello che mi serve.
Qualcuno sa come installare e attivare PDO_DBLIB e PDO_OCI driver o di una macchina Windows, o in qualsiasi altro modo di collegamento con i database Sybase e Oracle utilizzando DOP?
UPDATE
Basta con successo collegato con Oracle con PDO_OCI. Quello che dovete fare è la seguente:
Scaricare e installare il corretto Oracle Instant Client sulla vostra macchina Windows per esempio instantclient_12_1 e aggiungere il suo percorso al PATH nel SISTEMA variabili ambientali. Nota Oracle supporta solo 2 versioni verso il basso, quindi seleziona correttamente la versione del tuo client . Fallo e riavvia il tuo Apache.Si noti che la stringa di connessione è molto diverso da qui è un esempio di quello che ho usato:
$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
appena collegato con Sybase anche con PDO_ODBC. Quello che ti serve è il seguente:
Deve avere Sybase ASE Driver ODBC fornito con l'SDK. Seguito troverete la stringa di connessione utilizzata:
$connStr = "odbc:Driver={Adaptive Server Enterprise};server=".$myServer.";port=".$myPort.";db=".$myDB;
$conn = new PDO($connStr,$myUser,$myPass);
Posso chiedere * perché * vuoi collegarti al maggior numero possibile di database diversi? –
certo, sto cercando di raccogliere informazioni da diversi sistemi per essere visualizzati in un unico posto. un po 'come un portale per monitorare le tabelle degli errori e alcune statistiche. – Constantinos
Aggiornato il mio post con la soluzione per la connessione con oracle e PDO_OCI. Se qualcuno ha anche una soluzione per la sybase, faccelo sapere – Constantinos