da_flo Geschrieben 11. September 2006 Geschrieben 11. September 2006 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 Zitieren
Amstelchen Geschrieben 11. September 2006 Geschrieben 11. September 2006 $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 Zitieren
da_flo Geschrieben 11. September 2006 Autor Geschrieben 11. September 2006 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); Zitieren
Schiller256 Geschrieben 11. September 2006 Geschrieben 11. September 2006 Was gibt phpinfo() zum Thema mssql aus? Im Moment schaut es für mich so aus als wäre die Extension nicht geladen und somit ist die Funktion auch nicht bekannt. Zitieren
Amstelchen Geschrieben 11. September 2006 Geschrieben 11. September 2006 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 Zitieren
da_flo Geschrieben 11. September 2006 Autor Geschrieben 11. September 2006 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? Zitieren
Schiller256 Geschrieben 11. September 2006 Geschrieben 11. September 2006 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. Zitieren
da_flo Geschrieben 13. September 2006 Autor Geschrieben 13. September 2006 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 Zitieren
Empfohlene Beiträge
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.