Ich bin mit diesem Problem für eine Weile fest und ich kann einfach nicht weiter kommen, ich habe viele Suchen, aber nichts funktioniert ... Ich versuche, eine Verbindung zu einer Microsoft SQL-Datenbank mit PHP mit ODBC herzustellen.Verbinden mit MS SQL-Datenbank mit PHP: Datenquellenname nicht gefunden, und kein Standardtreiber angegeben
alles eingerichtet ist, wie folgt (die Werte zwischen "" in der Datei korrekt sind):
/etc/odbc.ini:
[CRMCONNECT]
Description = "CRMConnect"
Driver = FreeTDS
Trace = No
Servername = CRMSERVER
Database = "dbname"
UserName = "username"
Password = "password"
[Default]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
/etc/odbcinst.ini:
[FreeTDS]
Description = tdsodbc
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
CPTimeout = 5
CPReuse = 5
FileUsage = 1
/etc/freetds/freetds.conf:
[CRMSERVER]
host = xxx.xxx.xxx.xxx
port = 1433
tds version = 8.0
Ich überprüfe den Host mehrmals und es ist korrekt. Ich habe auch tds Version 7.0 versucht, aber kein Glück.
Ich kann erfolgreich an den Server mit isql verbinden:
[email protected]:/# isql -v CRMCONNECT "user" "pass"
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
Aber mit php Ich kann es einfach nicht arbeiten lassen, erhalte ich die folgende Fehlermeldung:
[unixODBC][Driver Manager]Data source name not found, and no default driver specified
My Connectionstring:
$connection = odbc_connect("Driver={CRMCONNECT};Server=xxx.xxx.xxx.xxx;Database=dbname;","username","password");
Alle Parameter sind doppelt geprüft und korrekt.
Wie kann ich erfolgreich mit isql verbinden, aber es scheitert in PHP?
Meine PHP-Version:
PHP Version 5.4.4-14+deb7u5
odbcinst Konfiguration:
unixODBC 2.2.14
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
Ich hoffe, dass jemand eine Idee hat, was falsch sein könnte.
Vielen Dank im Voraus
Grüße
UPDATE:
ich meine Connectionstring geändert:
$connection = odbc_connect("CRMCONNECT;Database=dbname;","user","pass");
, die in einem anderen Fehler resultierende:
[unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed
Ich werde in das, danke nochmal schauen vinodadhikary
Grüße.
UPDATE 2:
Meine Verbindungszeichenfolge falsch war, sollte es gewesen sein:
$connection = odbc_connect("CRMCONNECT","user","pass");
Dank vinodadhikary!
Grüße und schöne Ferien.
richtig unter Windows gearbeitet Vielen Dank für Ihre Antwort, eine Schande, dass ich nicht erkannt habe, dass ich eine Datenquelle anstelle eines Treibers definiert habe. Ich habe die Verbindungszeichenfolge geändert und einen neuen Fehler erhalten. Zumindest bin ich froh, dass ich jetzt einen anderen Fehler sehe :-) Ich werde das untersuchen. – peird
Versuchen Sie '' Database = dbname; ''aus Ihrer Verbindungszeichenfolge zu entfernen und behalten Sie es genauso wie in meiner Antwort. Sie müssen den Datenbanknamen nicht übergeben, da ODBC bereits die Option 'Database' definiert hat. – vee
Woops, das habe ich verpasst. Es funktioniert jetzt total, vielen Dank! – peird