2016-04-20 20 views
1

die folgende Fehlermeldung erhalten, wenn ein Upgrade auf PHP7 x64 testen:PHP 7 x64 ODBC-Fehler Verbindung mit MSSQL-Datenbank

odbc_connect(): SQL-Fehler: [Microsoft] [ODBC Driver Manager] Der Datenquellenname nicht gefunden und kein Standardtreiber angegeben

ich habe folgendes installiert:

  • PHP 7.0.0 x64
  • Microsoft ODBC-Treiber 11 für SQL Server x64
  • Microsoft Visual C++ 2015 Redistributable x64
  • Microsoft Visual C++ 2015 Redistributable x86
  • Der (thread-safe) Vorschau der PHP 7 MSSQL-Treiber: https://github.com/Azure/msphpsql

Ich habe uncommented/fügten die folgenden Zeilen meiner phpini:

  • extension = php_pdo_mysql.dll (unkommentiert)
  • extension = php_odbc.dll (hinzugefügt)
  • extension = php_sqlsrv_7_ts.dll (hinzugefügt)
  • extension = php_pdo_sqlsrv_7_ts.dll (hinzugefügt)

Dinge zu beachten:

  • Ich kann sehen, dass die Module in der Tat in phpinfo geladen werden.
  • Ich habe die ODBC-Verbindung hinzugefügt und kann sie in System DSN sehen.
  • Ich bin erfolgreich in der Lage, über sqlsrv_connect(), aber nicht odbc_connect(), was alle unsere bisherigen PHP 5.6 Skripte verwenden.

Ich kann nicht scheinen, die Antwort irgendwo anders zu finden. Jede Hilfe wäre willkommen. Vielen Dank.

Antwort

0

Ich habe mein eigenes Problem gelöst.

Es stellte sich heraus, die odbc_connect Zeichenfolge verwendet einen expliziten DSN-Namen und keine Datenbank, offenbar ...

Zuvor meine ODBC Connect String war $ conn = odbc_connect ('DB', $ DBUSER, $ DBPASS) und meine ODBC-Datenquelle war "SERVERNAME"

Sobald ich den ODBC-Datenquellennamen geändert, um den DB-Namen zu entsprechen, funktionierte es.