2013-01-18 13 views
5

Próbuję połączyć się z bazą danych Sybase za pomocą PHP5. Wierzę, że udało mi się skompilować PHP z PDO_DBLIB, jako phpinfo() zawiera listę dblib pod sterownikami PDO i freetds jako smaku pdo_dblib.Jak połączyć się z Sybase za pomocą PHP

Jednak gdy próbuję przetestować połączenie, pojawia się błąd odczytu:

'PDOException' with message 'could not find driver'

Próbuję połączyć się z serwerem w mojej sieci LAN z tym kodem:

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

Wszelkie sugestie będą bardzo mile widziane!

+0

Wydaje się nie mieć zainstalowany i włączony w php.ini kierowca Można spróbować tego sterownika eksperymentalny: http: // php .net/manual/en/ref.pdo-dblib.php – shark555

Odpowiedz

0

CHNP nie zadziałałby, a przynajmniej nie ma obsługi PDO Sybase dla php. W systemie Windows można używać ODBC i PDO_SQLSRV lub PDO_ODBC, może to zabrzmieć dziwnie, ale powinno działać.

Druga opcja i polecam go, jest bezpośrednie podłączenie do Sybase (Adaptive Server Anywhere), ale trzeba zainstalować SQL Anywhere PHP Module

+0

Zdenek Machek, dzięki za link do modułu PHP Anywhere z PHP. – zwiebelspaetzle

+0

Próbuję użyć modułu PHP Anywhere PHP, ale kiedy uruchamiam httpd, pojawia się następujący błąd: "Nie można załadować bibliotek klienta SQLAnywhere. Upewnij się, że libdbcapi_r.so można znaleźć w zmiennej środowiskowej LD_LIBRARY_PATH." Dodałem "SetEnv LD_LIBRARY_PATH/opt/sqlanywhere12/lib64" do mojego pliku httpd.conf. Jednak phpinfo nadal pokazuje Środowisko Apache LD_LIBRARY_PATH jako/usr/local/apache2/lib. Wszelkie sugestie? – zwiebelspaetzle

+0

Tak, na komputerze musi być zainstalowany Sybase SqlAnywhere lub przynajmniej klient SqlAnywhere i ta biblioteka musi zostać dodana do ścieżki systemowej, patrz "echo $ PATH" –

0

Jeśli używasz Ubuntu można umieścić LD_LIBRARY_PATH wewnątrz envvars i wydaje się czytać. ... wciąż próbuję znaleźć sposób, aby go trzymać na systemach opartych na RHEL ... Windows Nie jestem zbyt pewien, mam nadzieję, że możesz ustawić zmienną systemową pod moim komputerem -> właściwości -> zaawansowane opcje itp. itd.

Jeśli korzystasz z systemów opartych na RHEL, lepiej włączyć: wyeksportować LD_LIBRARY_PATH =/path/to/library/w skrypcie restartu httpd (sprawdź czy to nie jest ładuje/etc/sysconfig/httpd, a jeśli tak, dodaj tam linię - teraz zrestartuj apache i powinieneś zobaczyć jakąś aktywność.

0

Należy użyć dblib zamiast sybase, tak:

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