2017-07-21 3 views
1

Ich versuche, eine Verbindung zu einer Windows MS Sql Server-Datenbank mit PHPon Linux und ich weiß, dass ich den Hostnamen, Port, Benutzer-ID und Passwort korrekt haben. Ich habe dies mit einer Client-Software verifiziert, um sicherzustellen, dass ich zur Datenbank gelangen konnte. Ich bin mir sicher, dass es entweder der richtige Treiber, die richtige Methode oder ein Syntaxproblem ist. Vielleicht, wie die Port in diesen .:PHP - Verbinden mit MS SQL Server

verwendet Dies ist nur Beispielnamen usw.

$server = "myhost.com:1111"; 
$database = "mydatabasename"; 
$user = "johndoe"; 
$pass = "doe1"; 
$conn = odbc_connect('myhost.com','1111','johndoe','doe1'); 

oder

$connection_string = "DRIVER={SQL Server Native Client 10.0};SERVER=$server, 1433;DATABASE=$database"; 
$conn = odbc_connect($connection_string, $user, $pass); 

i auf diesem eine Variation hätte gerade "SQL Server", wie die Verwendung von Treiber, nachdem ich einen Beitrag über die Verwendung stattdessen gefunden habe.

Ich habe auch versucht dies:

mysql_connect($server,$user, $pass) or die ("<html><script  language='JavaScript'>alert('Unable to connect to database! Please try again later.'),history.go(-1)</script></html>"); 
    mysql_select_db($database); 
$query = "SELECT * FROM USER_TABLE "; 

Hier einige Informationen auf dem Server und Datenbank: Windows Server Standard 2007 MS SQL Server 2008 Standard Edition Verwenden von SQL Server-Authentifizierung

Ich würde es vorziehen die odbc_connect wenn möglich. Wir verwenden es, um eine Verbindung zu einer anderen Datenbank einer i-Serie herzustellen, und das funktioniert gut. Aber wir mussten auch keinen Port dafür verwenden.

Dank Michael

+0

I b ellieve müssen Sie den Port als separates Argument in der Zeichenfolge angeben wie '...; SERVER = $ server, Port = 1111; DATABASE = $ database; ...' –

+0

Danke Jacob. Ich werde bis Montag bei der Arbeit warten müssen, um es zu überprüfen. Aber das macht Sinn. – Michael

+0

Jacob. Das hat nicht funktioniert. Ich ging zurück und wechselte den Fahrer, um zu sehen, ob das half oder nicht, aber es tat es nicht. – Michael

Antwort

0
sudo apt-get install unixodbc unixodbc-dev (I already had this so didn't need to do this one.) 
sudo apt-get install tdsodbc freetds freetds-bin php5-odbc 

Der Rest ist ziemlich hier: http://help.interfaceware.com/kb/904

Auf meiner virtuellen Maschine natürlich mein Fahrer in/usr/lib/i386-linux-gnu/odbc/libtdsodbc entfernt wurde .so

mein obdbcinst.ini

[FreeTDS] 
Description = FreeTDS drvier 
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so 
Setup = /usr/lib/i836-linux-gnu/odbc/libtdsS.so 
FileUsage = 1 
Usagecount = 1 

[AS400] 
Driver = /usr/lib/libcwbodbc.so 
System = mydatabaseserver.com 
Setup = 
FileUsage = 1 
Usagecount = 1