2013-01-18 17 views
5

Sto provando a connettermi a un database Sybase con PHP5. Credo di aver compilato con successo PHP con PDO_DBLIB, come phpinfo() elenchi dblib sotto driver PDO e freetds come il sapore pdo_dblib.Come connettersi a Sybase tramite PHP

Tuttavia, quando provo a verificare una connessione, ottengo un errore di lettura:

'PDOException' with message 'could not find driver'

Sto cercando di connettersi a un server sulla LAN con questo codice:

$dbh = new PDO("sybase:host=192.168.1.xxx;dbname=[database-name]", '[user]', '[pass]'); 

Ogni suggerimento sarà molto apprezzato!

+0

Sembra non si dispone di driver installato e abilitato in php.ini si può provare questo driver sperimentale: http: // php .net/manual/it/ref.pdo-dblib.php – shark555

risposta

0

PDO non funzionerebbe, o almeno non esiste il supporto per Sybase PDO per php. Su Windows, è possibile utilizzare ODBC e PDO_SQLSRV o PDO_ODBC, potrebbe sembrare strano, ma dovrebbe funzionare.

Seconda opzione e lo consiglio, è quello di collegare direttamente a Sybase (SQLAnywhere), ma è necessario installare SQL Anywhere PHP Module

+0

Zdenek Machek, grazie per il collegamento al modulo PHP Anywhere di SQL. – zwiebelspaetzle

+0

Sto provando a utilizzare il modulo PHP Anywhere di SQL, ma quando avvio httpd, viene visualizzato questo errore: "Impossibile caricare le librerie client di SQLAnywhere. Assicurarsi che libdbcapi_r.so possa essere trovato nella variabile di ambiente LD_LIBRARY_PATH." Ho aggiunto "SetEnv LD_LIBRARY_PATH/opt/sqlanywhere12/lib64" al mio file httpd.conf. Tuttavia, phpinfo mostra ancora l'ambiente Apache LD_LIBRARY_PATH come/usr/local/apache2/lib. Qualche suggerimento? – zwiebelspaetzle

+0

Sì, sulla macchina deve essere installato Sybase SqlAnywhere o almeno SqlAnywhere client e questa libreria deve essere aggiunta al percorso di sistema, vedere "echo $ PATH" –

0

Se si sta utilizzando Ubuntu si può mettere la LD_LIBRARY_PATH all'interno envvars e sembra di leggere. .. ancora cercando di trovare un modo per farlo attaccare ai sistemi basati su RHEL ... Windows non sono troppo sicuro di cosa spero che tu possa impostare una variabile di sistema sotto il mio computer -> proprietà -> opzioni avanzate ecc. ecc.

Se si utilizzano i sistemi basati su RHEL, potrebbe essere preferibile includere: esportazione LD_LIBRARY_PATH =/percorso/a/libreria/nello script di riavvio httpd (controllare per vedere se carica/etc/sysconfig/httpd e se è così aggiungi la riga qui - ora riavvia apache e dovresti vedere qualche attività.

0

Si consiglia di utilizzare dblib invece di sybase, in questo modo:

$dbh = new PDO("dblib:host=192.168.1.xxx;dbname=[database-name]", '[user]', '[pass]'); 
Problemi correlati