mssql_connect() problem, kann sich nicht mit SQL Server 05 verbinden!

Nightking

Grünschnabel
Tag zusammen :)

Also mein Problem ist folgendes:

Ich habe mit SQL Server 2005 Enterprise eine Datenbank realisiert und möchte nun per PHP auf diese Datenbank zugreifen. Auf meinem Notebook ist, neben SQL-Sever 05 auch das "Webserverpaket" XAMPP installiert, worauf der Apache- und der MySQL-Server aktiv ist, die sql.php befindetet sich im htdocs vom XAMPP! Auch wenn der MySQL Server deaktiviert ist, funktioniert der Zugriff nicht!


Der PHP-Code der sql.php Datei:
Code:
<?php

$server = "localhost";
$username = "test";
$passwort = "test";
$db = "CMS"; 

//Verbindung zum SQL-Server
$connect= mssql_connect($server,$username,$passwort)
or die("Verbindung nicht erfolgreich! Konnte nicht zum $server SQL-Server verbinden!");

//Kleine Überprüfung

if($connect == true){
	echo "Verbindung erfolgreich!";
}
?>

Nun bekomme ich folgende Fehlermeldung:
Code:
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: localhost in C:\xampp\htdocs\CMS\sql.php on line 9
Verbidnung nicht erfolgreich! Konnte nicht zum localhost SQL-Server verbinden!
Line 9 = $connect= mssql_connect($server,$username,$passwort)

Zum Benutzer "test":
Ihm "gehört" die Datenbank "CMS", zusätzlich hat er sämtliche Rechte und die SQL-Authentifizierung ist aktiviert! Aber Vorschläge/Anregungen dazu nehm ich gern entgegen und überprüfe gern alles doppelt ;)!!

Firewalls sind keine aktive, bzw. obwohl die Windowsfirewall auf deaktiviert ist, hab ich noch die Ports (laut MS-Press) "1433/TCP" "1434/UDP" in die Ausnahmeliste eingetragen.

Weitere Infos:
OS: Windows XP Prof. Sp2
Webserver: XAMPP/Standarteinstellungen -- PHP 5.2.5
SQL-Server 2005
Firewall: Keine aktiv!
Antivirus: Avira AntiVir

Sämtliche Vorschläge, Hilfestellungen und sind sie noch so klein, sind herzlich Willkommen :p.

mfg Nighty ^^

PS: Forum hab ich durchsucht, den Thread, denn ich fand, war nicht hilfreich :(. Google fand ich leider auch nicht hilfreich, hab zwar zwei drei Dinge gefunden, aber die brachten mich nicht weiter!
 
Zuletzt bearbeitet:
Also so wie ich das lese versuchst du mit mssql_connect() eine MySql Datenbank zu öffnen. Für Mysql wäre hier mysql_connect() richtig.

:) Nenee sorry hab mich wohl falsch Ausgedrückt:

mssql_connect() ist schon richtig, ich versuch jah auch auf einen SQL-Server 2005 zuzugreifen. Der MySQL-Server ist/war bloss da um zu testen ob ich den connection-string richtig geschrieben hab.

@Dark Ranger

Geht leider auch nicht, ob nun aktiv oder deaktiviert.

Zur Alternative könnt ich die SQL-Datenbank nach MySQL migrieren (Rechtschreibung sollte stimmen^^) aber wenn PHP schon die Funktion mssql_connect() zurverfügung stellt würd ich die auch gerne nutzen :).

/edit

Hab nun auch nach dieser Anleitung:
http://www.php.net/manual
mal die Einträge in der php.ini korrigiert, bzw nachgetrangen und die ntwdblib.dll in den Sys32-Ordner kopiert und im Php-Ordner vom XAMPP ersetzt bzw. die "Server-Tools" sind schon installiert... brachte aber leider keine besserung :(

/edit 2

Hab nun nach dieser Webseite:http://vb2005.de/SQLServer.aspx das Netzwerkprotkoll TCP/IP auf aktiviert gesetzt und noch Named Pipes auch auf aktiviert.... bringt aber immer noch keine besserung! Ports sind geöffnet, bzw werden nicht durch ein anderes Programm geblockt!
 
Zuletzt bearbeitet:
So, nach fast 4h lesen, schreiben, googlen usw. hab ich nun endlich den Fehler!

Kurzanleitung:

SQL-Server 2005 installieren, am besten mit allen Tools usw.

Mit dem SQL-Server Configuration Manager, unter Netzwerkkonfiguration/Protokolle für 'MSSSQLSERVER' (kann abweichen) den TCP/IP auf "Aktiviert" stellen, und Named Pipes ebenso! (Server neustarten!)

Danach einen Benutzer im SQL-Server einrichten, diese mit den nötigen Rechten versehen und speichern! Ganz wichtig! SQL-Authentifizierung muss ausgewählt werden!

Deaktiviert eure Firewalls, bzw gebt die Ports 1433/UDP und 1434/TCP frei.

Falls IIS läuft, über Software/Windows Komponenten hinzufügen/entfernen und IIS löschen!

XAMPP installieren

Nun nehmt die auf der SQL-Server-CD befindliche ntwdblib.dll (bei mir war sie nicht auf der CD, habs von Google geloadet^^) und kopiert diese ins C:\Windows\System32 und in C:\XAMPP\php. Wenn die Nachfrage kommt, ob ihr diese ersetzen wollt, klickt auf Ja!

Nun müsst ihr noch in der php.ini folgender Eintrag hinzufügen: "extension=php_mssql.dll" /7Bei mir, PHP 5.2.5, musste ich es nicht nachtragen, war scho vorhanden. :)
ohne""

Falls ihr über die NT-Authentifizierung euch Verbinden wollt müsst ihr noch
"mssql.secure_connection = off" auf "mssql.secure_connection = on" setzen!

Erstellt im Ordner Xampp\htdocs einen Unterordner zB "xampp\htdocs\CMS" und kopiert eure Dateien dort hinein.

So nun eigentlich der wichtigster Teil!

Code:
<?php

$server = "localhost";
$username = "test";
$passwort = "test";
$db = "CMS"; 

//Verbindung zum SQL-Server
$connect= mssql_connect($server,$username,$passwort)
or die("Verbindung nicht erfolgreich! Konnte nicht zum $server SQL-Server verbinden!");

//Kleine Überprüfung

if($connect == true){
	echo "Verbindung erfolgreich!";
}
?>
Dies wird euch einen Fehler ausgeben Ihr müsst umbedingt das localhost, durch euere "interne" Ip ersetzen, genau da lag nämlich bei mir der Fehler! so zB:
Code:
<?php

$server = "192.168.50.49";
$username = "test";
$passwort = "test";
$db = "CMS"; 

//Verbindung zum SQL-Server
$connect= mssql_connect($server,$username,$passwort)
or die("Verbindung nicht erfolgreich! Konnte nicht zum $server SQL-Server verbinden!");

//Kleine Überprüfung

if($connect == true){
	echo "Verbindung erfolgreich!";
}
?>

Nun könnt ihr die Seite über: "http://127.0.0.1/cms/Datei.php" aufrufen

Das war der ganze Zauber, ich hoffe es ist hilfreich, bei Fehler, Vorschlägen, Fragen oder Kritik, einfach melden!! Auf jedenfall danke, sorry für diesen Doppelpost, wollte aber das es alle sehen :).

PS: Big Thx an Tr3yV1 für seine unterstützung!!
 
Zuletzt bearbeitet:
mhh irgendwie funktioniert das nicht, ich habs genau wie in deiner anleitung beschrieben gemacht!
 
Soviel ich weiss, ist im Xampp nur ein MySQL-Server enthalten....

es müsste als "mysql_connect" sein ...und nicht "mssql_connect"

Du brauchst als für den Apache (welche ja im Xampp-paket läuft) ein paar Libs/Apache-Mods, damit er von php => mssql "verbinden" kann...
 
Zuletzt bearbeitet:
Wenn du Skype benutz, würd ich das schließen weil das anscheinend iwie den connectionaufbau störrt
 
Zurück