fanki46
Goto Top

Mit PHP auf MSSQL DB connecten

Hallo liebe Formleute

Wie mein Titel schon sagt möchte ich, bzw. muss ich, mit PHP auf eine MSSQL Datenbank zugreifen. Ich erhalte leider keine Fehlermeldung die mir weiter helfen könnte.

PHP funktioniert auf dem Webserver ohne Probleme. ntwdblib.dll wurde kopiert.

<?php
        $link = mssql_connect('localhost', 'user', 'passwort') or die ("error");	// Servername, username, passwort  
        mssql_select_db('datenbankname', $link);			// Datenbank anwählen  
?>

Die Angaben (User, DB-Name usw.) sind korrekt und wurden schon von diversen Leuten überprüft.

Informationen:

PHP Version: 5.2.11
IIS: 6.0
Windows Server: 2003

Dieses Beispiel funktioniert leider auch nicht.
<?php
        mssql_connect('localhost', 'user', 'passwort') or die ("error");	// Servername, username, passwort  
        mssql_select_db('datenbankname');			// Datenbank anwählen  
?>

Vielen Dank im Voraus

Liebe Grüsse

Content-Key: 127931

Url: https://administrator.de/contentid/127931

Printed on: April 23, 2024 at 18:04 o'clock

Member: maretz
maretz Oct 26, 2009 at 14:29:03 (UTC)
Goto Top
Wenn ich jetzt ganz lieb frage - gibst du dann auch die genaue Fehlermeldung raus? ;)
Member: fanki46
fanki46 Oct 26, 2009 at 14:33:47 (UTC)
Goto Top
Nein eben nicht. Die Seite bleibt einfach leer. Sie meldet nur error. face-sad

Es gibt doch ein Befehl, dass ich eine Errornummer oder so was ähnliches anzeigen kann. Wie geht dieser?
Member: ddcool
ddcool Oct 26, 2009 at 14:49:43 (UTC)
Goto Top
Hallo,

ist der SQL-Server auf dem Computer gestartet? Kannst du dich mit anderen programmen verbinden?
Wurde eventuell der Port umgestellt?

Lg ddcool
Member: fanki46
fanki46 Oct 26, 2009 at 14:55:30 (UTC)
Goto Top
Hallo,

Ja der Server läuft und ich kann via Managemnt Studio auch darauf zugreifen.

gruss
Member: Arano
Arano Oct 26, 2009 at 14:57:52 (UTC)
Goto Top
@maretz:
Ich erhalte leider keine Fehlermeldung die mir weiter helfen könnte.
face-wink


@Franki:
Dieses Beispiel funktioniert leider auch nicht.
  1. Und das weisst du woher ?
  2. Was sollte den passieren, wie würdest du wissen das es geklappt hat ?
  3. Wo ist denn nun dein Problem ?
      • Verbindung zu DB-Server herstellen oder
      • Die zu verwendende Datenbank auswählen ?
Wir erwarten da schon mehr bei der Problem-/Fehlerbeschreibung wenn wir __helfen sollen__ ! (auch wenn es hier recht eindeutig ist)

In der Regel gibt es diese nämlich immer, die Frage ist nur ob sie auch angezeigt wird oder nicht, in einer Variable und/oder dem Logfiles des Webservers / Systems gespeichert wird.
Bei der Entwicklung eines Skripts ist es von daher immer gut "error_reporting(E_ALL | E_STRICT);" zu verwenden um über alle Fehler, Warnungen ect. informiert zu werden. (siehe auch "dislpay_error")

Mit MSSQL habe ich noch nichts zu tun gehabt und kenne mich deshalb auch nicht mit den PHP-Funktionen aus, aber PHP-Manual - mssql_get_last_error() scheint die richtige Funktion zu sein um an eine Fehlermeldung des MSSQL-Servers zu kommen.


~Arano
Member: ddcool
ddcool Oct 26, 2009 at 15:09:53 (UTC)
Goto Top
Was ist mit den Ports?
Ist der Server so eingerichtet, dass er eventuell nur über NamedPipes erreichbar ist?
Oder vielleicht auch nur auf der eigentlichen IP-Adresse antwortet und nicht auf localhost (127.0.0.1)?

Guck dir mal bitte an, wie sich das Management Studio verbindet bzw. wohin es sich verbindet.
Diese Daten übernimmst du dann mal, wenn es per IP und nicht per NamedPipe ist.
Member: fanki46
fanki46 Oct 26, 2009 at 15:24:42 (UTC)
Goto Top
Zuerst mal danke an alle Antworten bis jetzt.

Last Error:
MSSQL error: Login failed for user servername\IUSR_servername'.

Ich connecte aber nicht mit diesem Username auf den Server. Wieso nihmt es mir den ISS User?

gruss
Member: maretz
maretz Oct 27, 2009 at 05:36:16 (UTC)
Goto Top
Moin,

da meine Erfahrungen mit dem MS-SQL etwas her sind bitte nicht hauen -> aber bei den meisten DB-Servern kann man nicht nur User anlegen sondern auch sagen von wo die sich verbinden dürfen...

Hast du dir mal nen SQL-Client (db-Manager Standard von dbtools z.B.) geschnappt und damit von deinem PC versucht ne Verbindung herzustellen? Nicht das du ganz einfach nur nen falschen Host für den User
eingestellt hast... (k.A. ob MS-SQL das dann mit nem Dummy-User probiert).
Member: ddcool
ddcool Oct 27, 2009 at 09:52:01 (UTC)
Goto Top
Habs grade mal selbst probiert. Also dein PHP-Script funktionier bei mit wunderbar.
Meine Umgebung:

- XAMMP (default config und aktuelle Version)
- MSSQL 2008

Versucht habe ich es mit dem 'sa' Benutzer, nur um sicher zu gehen, dass ich alles darf. ;)

Also liegt dein Problem wohl irgendwo an der Konfiguration des IIS, deiner PHP-Umgebung, oder den Berechtigungen/Einstellungen der Datenbank.

Einen Lösungsansatz habe ich durch googlen hier gefunden:
http://www.google.de/search?hl=de&q=experts+exchange+login+failed+f ...

Bitte nimm den ersten Link.


Außerdem solltest du dir folgendes mal durchlesen und überprüfen:
http://www.helpspot.com/helpdesk/index.php?pg=kb.page&id=13


Lg ddcool