2013-02-28 6 views
5

Ich versuche, Wamp php mit einer MsSQL-DB zu kommunizieren, aber ich kann nicht scheinen, damit es funktioniert. Die aktuelle Fehlermeldung, die ich auf dem Browser erhalten (Chrom) ist:php mssql Erweiterung auf wamp

Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: (...) Couldn't connect to SQL Server 
  1. ntwdblib.dll die richtige Version ist (2000.80.194.0)

  2. ich nicht php_sqlsrv verwenden kann (der Einsatz Server ist linux nur, sqlsrv Fenster ist nur), obwohl von sqlsrv ich mit dem Schluss, dass der Zugang info korrekt ist (Server, Benutzer, Passwort)

  3. ich habe wieder herabgestuft WampServer 2.1e & pHP 5.3.1 (Einige Leute haben es funktioniert wie this)

  4. gibt es keine Fehler auf dem apache_error.log, wenn ich den wamp Server

  5. Installation freetds auf meinem Rechner Apache neu starten

  6. Remote-Rechner (Linux-Server) erfolgreich verwendet php_mssql.dll hängt

Der Code ich verwende:

<?php 
$dbhandle = mssql_connect($ip,$user,$pass) or die("Couldn't connect to SQL Server on $ip"); 
$selected = mssql_select_db($dbname,$dbhandle) or die("Couldn't open database at SQL server: $ip"); 
?> 

Ich werde jetzt versuchen, eine virtuelle Maschine Linux, aber sicher, auch wenn das funktioniert, wird es ein Schmerz sein (langsam und funktionslos).

Mein System: Windows 7, Wampserver 2.1e, PHP 5.3.1

Was kann ich noch versuchen? :(

+0

Können Sie den Code zeigen, den Sie versucht haben? – Tjoene

+0

Sicher, hier ist mein Code: $ dbhandle = mssql_connect ($ IP, $ Benutzer, $ Pass) oder sterben ("Konnte keine Verbindung zu SQL Server auf $ ip"); $ selected = mssql_select_db ($ dbname, $ dbhandle) oder sterben ("Konnte Datenbank am SQL Server nicht öffnen: $ ip"); –

+0

Immer noch fest auf diesem. Im Moment verwende ich eine Funktion, die überprüft, ob die Website online ist. Wenn es mssql aufruft (was auf dem Linux-Server funktioniert), ruft es gefälschte Tabellen auf mysql auf, die die gleiche Struktur wie die mssql-Tabellen haben. Dies funktioniert, aber es ist weit von ideal ...: P –

Antwort

0

Haben Sie MsSQL installieren Da WAMP der M ist MySQL nicht MSSQL

+0

Ich weiß, aber ich muss in diesem Fall mit einer Mssql-db arbeiten, nicht mysql. Die Datenbank ist remote, sie befindet sich nicht auf meinem Computer. –

0

leider nicht möglich, Server verbinden:?. (...) konnte nicht auf SQL Server verbinden“

Haben Sie in PHP für MS-SQL jeden Treiber-Modul installieren ??

Neben einer VM nicht unbedingt langsam und eintönig ist - zumindest funktioniert es :)

MDB2 oder PDO migh t eignet sich am besten zum Abstrahieren der Datenbank-E/A.

F: Können Sie ein Terminal für MS-SQL öffnen, z. Telnet?

(Dies würde zumindest jede Art von Konnektivitätsprobleme aussortieren).

Sie können dieses Modul benötigen hier: PECL ODBTP> = 1.1.1 (offene Datenbank-Transportprotokoll)

extension=php_mssql.dll 

^auch, Kasse phpinfo() einmal, wenn diese Erweiterung selbst geladen ist.

http://www.php.net/manual/en/mssql.installation.php

Well - Installation von MySQL unter Windows würde kein Problem sein (falls das Sinn machen würde).

+0

Danke für Ihre Antwort. Ich habe die Erweiterung php_mssql installiert und es wurden keine Fehler von Apache gemeldet.Ich weiß auch, dass es keine Verbindungsprobleme gibt, denn wenn ich die sqlsrv-Erweiterung (mit den gleichen Einstellungen) verwende, funktioniert alles gut. –

1

Angenommen, Sie haben versucht, den Fahrer/Erweiterung von hier installiert zu bekommen: http://www.microsoft.com/en-gb/download/details.aspx?id=20098 und Sie haben Ihre php.ini in Ihrem * AMP-Stack des PHP Ordner geändert ..; und legen Sie die Erweiterung mssql in der php/ext Ordner ...

nach mehreren Stunden des Suchens, hat dieses Handbuch mich erfolgreich mit einer MS SQL-Datenbank verbunden. http://webcheatsheet.com/php/connect_mssql_database.php

edit: weiterhin meine Verbindungsklasse nimmt DB Uname PW und serverIP als Konstruktorparameter und die Konstruktorfunktion SetCon() aufruft, so dass, wenn das Objekt erstellt wird die Verbindung auch. Ich kann dann Anfragen rufen die Verbindung in einem OOP-Stil Objekt

function setCon(){ 
    $conn = mssql_connect($this->server, $this->UName, $this->pw); 
    if ($conn){ 
     echo "Connection established @ $this->server.$this->DB (Connected to MS SQL DB)\n"; 
    } 
    else{ 
     echo "Connection could not be established."; 
     die(print_r(sqlsrv_errors(), true)); 
    } 

und dann später wird dieser benötigt, um die Verbindung

erstellt Zugriff
function getCon(){ 
    return mssql_connect($this->server, $this->UName, $this->pw); 
} 
0

Actualy standardmäßig WampServer nicht mit php_mssql kommt. dll die Erweiterung wird über php_pdo_mssql oder php_dblib gemacht. auf x64 getestet WampServer 2 PHP 5.3.13

  • php_pdo_mssql Mit

    1. wampserver
    2. aktivieren php_pdo_mssql
    3. aktivieren php_mssql
    4. Kopie ntwdblib.dll zu bin/php/php installieren {version}/ext/und bin/apache/{version}/bin
    5. starten Sie alle Dienste neu
  • Mit php_dblib

    1. statt php_pdo_mssql aktivieren php_dblib.

Warnung nicht aktivieren sowohl php_pdo_mssql und php_dblib.

Auf verschiedenen Versionen von PHP wampserver funktioniert anders auf 5.3.1 erste Lösung funktionierte für mich aber auf 5.3.13 Sekunde.