Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich hoffe Ihr könnt mir weiterhelfen.

Ich habe folgende Komponenten auf meinem Server installiert:

- MS Windows Server 2003 EE

- IIS (inkl. PHP-Einbindung)

- DNS

- ADS

- DHCP

- MS SQL 2000

So nun möchte ich von meiner Intranetpage aus auf eine Datenbank auf meinem Server zugreifen. Leider funktioniert dies nicht.

Ich habe in der Konfig "php.ini" die Includes aktiviert. Ich habe auch die Rechte für die Datenbank zugeordnet bzw. vergeben.

Nun möchte ich eine Verbindung zur Datenbank aufbauen, das mit mysql so funktioniert:

$connection = @mssql_connect($DATABASEHOST,$DATABASEUSER,$DATABASEPASSWORD);

mssql_select_db($DATABASENAME, $connection);

Beim Verbinden zur Datenbank erscheinen keine Fehlermeldungen oder ähnliche Hinweise. Es wird lediglich nur nichts angezeigt, sprich weisses Fenster wird angezeigt.

Habt Ihr einen Tipp für mich?

Vielen Dank schon im Vorraus.

Gruß

Flo

Geschrieben
$connection = @mssql_connect($DATABASEHOST,$DATABASEUSER,$DATABASEPASSWORD);

Habt Ihr einen Tipp für mich?

ja, zuallererst das @ vor dem mssql_connect wegnehmen, da dieses fehlermeldungen unterdrückt. nicht blindes übernehmen von code ist das gebot der stunde.

s'Amstel

Geschrieben

Danke für Deine Antwort.

Danach kommt diese Fehlermeldung:

Fatal error: Call to undefined function mssql_connect() in C:\Inetpub\wwwroot\index.php on line 9.

Wie gesagt, die Extension ist aktiviert in der php.ini.

Zeile 9:

$connection = mssql_connect($DATABASEHOST,$DATABASEUSER,$DATABASEPASSWORD);

Geschrieben

stimme schiller zu. es muss die zeile "extension=php_mssql.dll" in der php.ini einkommentiert, dieselbige datei im extensions-verzeichnis von php vorhanden sein, sowie die MSSQL-clientbibliothek korrekt installiert (und konfiguriert) sein.

s'Amstel

Geschrieben

Also ich habe die php.ini unter c:\inetpub\php gespeichert und die extension mssql.dll aktiviert. Wenn ich nun die phpinfo(); ausführe, dann erscheint bei PHP Core das extension_dir mit dem Wert c:\php5\. Verstehe ich nicht ganz. In der Registry ist auch nichts zu finden. Hmm komisch. Wisst ihr weiter?

Geschrieben

Die Ausgabe der phpinfo() muss eine eigene Section mit dem Namen mssql enthalten. Ist das nicht der Fall dann wurde mssql nicht geladen. Wenn bei dir in der Ausgabe der Pfad zum extension_dir mit c:\php5\ angeben ist dann muss du dann nach der dll Datei suchen die du in der php.ini auskommentiert hast wenn du sie da nicht findest dann musst du sie da rein kopieren.

In der ersten Section findest du einen Eintrag der so "Configuration File (php.ini) Path" lautet. Der Pfad der da angeben ist, ist deinen php.ini die du ändern musst.

Geschrieben

Hallo Ihr,

ich habe es endlich geschafft. :marine

Ich möchte mich bei allen bedanken, die mir halfen, dieses Problem zu beseitigen. Besonders bei Schiller256.

Wichtig bei der ganzen Sache ist, dass die Umgebungsvariable "Path" auf das Verzeichnis 'C:\WINDOWS' als erstens angegeben wird. Danach sucht der IIS die Config 'php.ini' in dessen Verzeichnis.

Hier noch ein paar Punkte, die in der php.ini verändert werden müssen:

- mssql.secure_connection = Off

- extension_dir = "c:\inetpub\php\ext" //Installationspfad von php

- extension=php_mbstring.dll

- extension=php_gd2.dll

- extension=php_mssql.dll

Ausserdem sollte die Datei 'ntwdblib.dll' im PHP-Verzeichnis in Verzeichnis 'C:\WINDOWS' und 'C:\WINDOWS\SYSTEM32' kopiert werden.

Im IIS muss PHP eingerichtet werden -> siehe link

http://www.infos24.de/phpe/handbuch/2b_php_installation.htm

Im SQL Server muss noch ein Benutzer eingerichtet werden. Ich habe ein SQL-Benutzer eingerichet und die entsprechenden Rechte vergeben.

Und nun der PHP-Code:

<?php

error_reporting(E_ALL);

$DBH = '192.168.0.1,1433'; // Databasehost

$DBU = 'test'; // Databaseuser

$DBP = 'test'; // Databasepassword

$DBN = 'testdb'; // Databasename

$connection = mssql_connect($DBH,$DBU,$DBP);

mssql_select_db($DBN,$connection);

if(!$connection)

{

echo 'Es wurde ein Fehler bei der Verbindung zur Datenbank festgestellt!';

}

else

{

$query = 'SELECT Hersteller '

. 'FROM hersteller '

. 'ORDER BY hersteller;';

$erg = mssql_query($query,$connection);

while(list($hersteller) = mssql_fetch_row($erg))

{

echo 'Ort: ' . $hersteller . '<br>';

}

}

mssql_close($connection);

?>

Wichtig ist das in roter Schrift.

Falls Ihr Fragen oder Kritik habt, dürft Ihr Euch bei mir melden.

PeAcE :bimei

Flo

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...