DePlague Geschrieben 13. Februar 2002 Geschrieben 13. Februar 2002 Hi, ich nutze PHP4 und eine MSSQL 7 DB. PHP läuft soweit auch und MSSQL auch jedoch wenn ich von PHP auf die DB zugriefen will bekomme ich immer die Fehlerausgabe PHP Fatal error: Call to undefined function: mssql_connect() in c:\inetpub\wwwroot\sql.php on line 7 ich habe für den Zugriff diesen PHP-Code verwendet... <? $hostname = "localhost"; $username = "admin"; $password = "pw"; $dbName = "db"; MSSQL_CONNECT($hostname,$username,$password) or DIE("DATABASE FAILED TO RESPOND."); mssql_select_db($dbName) or DIE("Table unavailable"); $query = "SELECT * FROM users"; $result = MSSQL_QUERY($query); $number = MSSQL_NUM_ROWS($result); $i=0; if ($number == 0) : print "No data?"; elseif ($number > 0) : print "Data:"; while ($i < $number) : $name = mssql_result($result,$i,"Name"); print $name; print ""; $i++; endwhile; endif; ?> der sollte an sich ja auch laufen und wenn nicht würde er ja dann rausspringen. Aber wieso kennt er den Befehl mssql_select_db nicht? Ich habe was gelesen das ich dafür die php_mssql70.dll nutzen soll aber die habe ich nicht, sondern nutze die php_mssql.dll . die Infos habe ich von http://www.php.net/manual/de/function.mssql-connect.php Danke für jede Hilfe... DePlague Zitieren
Jaraz Geschrieben 13. Februar 2002 Geschrieben 13. Februar 2002 Hallo, als erstes brauchst du eine PHP Version in die die MSSQL Funktionen mit "eincompiliert" wurden. Diese findest du unter www.php4win.de. Danach musst du in der php.ini in der Zeile: ;extension=php_mssql70.dll das Semikolon entfernen, damit er die dll beim Interpreter Start auch lädt. Außerdem muss natürlich der Pfad zu den Extensions richtig gesetzt werden. Und zwar in der Zeile: extension_dir = ./ ; directory in which the loadable extensions (modules) reside Gruß Jaraz Zitieren
DePlague Geschrieben 13. Februar 2002 Autor Geschrieben 13. Februar 2002 Hallo, als erstes brauchst du eine PHP Version in die die MSSQL Funktionen mit "eincompiliert" wurden. Diese findest du unter www.php4win.de. Ich habe die Version von dennen (jedoch noch die 4.1.0) und habs auch damit installiert und zusätzlich noch den WinPHPInstaller für die automatischen abänderungen im IIS und der php.ini. Danach musst du in der php.ini in der Zeile: ;extension=php_mssql70.dll das Semikolon entfernen, damit er die dll beim Interpreter Start auch lädt. Das ist mir klar, so habe ich das ja auch jedoch habe ich bei mir ne php_mssql.dll (ich weiß nicht wo ich ne php_mssql70.dll hernehmen soll? Denn die habe ich nirgends.) Außerdem muss natürlich der Pfad zu den Extensions richtig gesetzt werden. Und zwar in der Zeile: extension_dir = ./ ; directory in which the loadable extensions (modules) reside Ich habe die dlls ins WinNT\System32\ mit reinkopiert und auch dahin verlinkt. (sollte so eigendlich auch klappen) Gruß Jaraz Ich lade mir jetzt mal die 4.1.1 runter mal sehn ob da ne php_mssql70.dll drin ist.... THX DePlague Zitieren
DePlague Geschrieben 13. Februar 2002 Autor Geschrieben 13. Februar 2002 die PHP Installation die jetzt bei mir läuft ist MySQL fähig, das läuft ohne weiteres bekomme auch die Zugriffe auf die MySQL DB, aber will ich auf ne MSSQL DB das geht nicht (siehe Beschreibung oben) Deswegen wundert mich das ganz auch??? DePlague Zitieren
Jaraz Geschrieben 13. Februar 2002 Geschrieben 13. Februar 2002 Ich habe jetzt selber mal gesucht. Ergebnis: php_mssql70.dll is an old version of the extension. If you update to the latest version of php4 the extension will be named php_mssql.dll. Also wenn du alles wie besprochen mit der php_mssql.dll gemacht hast, sollte es funktionieren. Gruß Jaraz Zitieren
DePlague Geschrieben 13. Februar 2002 Autor Geschrieben 13. Februar 2002 Hi Jaraz, ich habe wie du es mir sagtest die neue Version runtergeladen und musste feststellen das ich die schon drauf hatte. Kurz ich hatte schon das alles so gemacht wie du es sagtest (blos das ich den WindowsInstaller für PHP4.1.1. genutzt hatte) Hatte aber jetzt mal ohne den Installer installiert und es läuft troßdem nicht und ja es gibt nur die php_mssql.dll. Hmm schade das du mir nicht weiterhelfen kannst... Mist ist blos das mich die Einarbeitungszeit in PHP und SQL schon so viel Zeit gekostet hatte und ich mal endlich ans codieren der PHP Seiten kommen will. Der SQL Server läuft, die Tabellen sind schon erstellt (alles per Script für Doku - da das mein Abschlußprojekt ist) Und PHP läuft auch soweit (Berechnungen und andere Test-Scripte laufen) aber ich bekomme keine abgefuckte *sorry* Verbindung zum MSSQL-Server. Mit MySQL @ Home geht's warum hier aber nicht mir MSSQL *argl* Und in jedem Forum wo ich schon nachgesehn habe finde ich immer nur die gleiche Info *heul* Trotzalledem vielen Dank an Jaraz... falls noch jemand anders Tipps hat ich bin für alles offen *hoff* THX DePlague Zitieren
Jaraz Geschrieben 13. Februar 2002 Geschrieben 13. Februar 2002 Tach! Mal ne dumme Frage. Hast du auf dem Webserver den MSSQL Client installiert. Die PHP DLL greift auf Bibliotheken von MSSQL zu, und die müssen natürlich vorhanden sein. Entweder als installierter Server oder als Client. Gruß Jaraz Zitieren
Matze Geschrieben 13. Februar 2002 Geschrieben 13. Februar 2002 Hi. Das gleiche Problem hab ich mit PHP4 und MySQL auch. Ich kann die Datenbank nicht selecten. Würd mich auch über eine Lösung freuen.... Zitieren
DePlague Geschrieben 13. Februar 2002 Autor Geschrieben 13. Februar 2002 @Jaraz ja PHP und die SQL-Datenbank liegen auf ein und den selben Server. Soll aber später getrennt werden aber das steht erstmal nicht zur Debatte. Kann ich dir sonst mal die php.ini zuschicken? Vielleicht habe ich ja auch da noch nen dummen Fehler drin. DePlague Zitieren
DePlague Geschrieben 13. Februar 2002 Autor Geschrieben 13. Februar 2002 *schäm* Oh wei... ich habe gerade den Fehler gefunden, nach gut 5 Stunden langen suchen und selbst die dümmsten Fälle auszuprobieren, habe ich ihn gefunden. Ich hatte zwei php.ini's auf meinem System, eine unter C:\PHP4\ und eine unter C:\WinNT\. Tja und wie Gott es so will wollte ich das SQL-Modul immer von dem PHP4-Verzeichniss laden (kurz ich habe die Änderungen in der C:\PHP4\php.ini gemacht) aber das System hatte immer die Kunfigurationen von der php.ini unter dem WinNT-Verzeichnis geladen. Tja auf sowas komm mal wenn du fest der Annahme bist das du nur eine php.ini hast. Okay jetzt könnt ihr mich schlagen. @ Matze guck mal ob das bei dir auch der Fall ist... Ich kann aber nicht sagen ob ich die php.ini im Systemverzeichnis angelegt hat oder ob das bei der Installation passiert ist. Jedoch weiß ich eines dass das nen arschdummer Fehler war und das mir dafür fast nen ganzer Tag verlorengegangen ist. (Hoffe das passiert keinen von euch) Aber ein dickes THX an Jaraz der mir mit Rat und Tat zur Seite stand! THX DePlague Zitieren
JoelH Geschrieben 13. Februar 2002 Geschrieben 13. Februar 2002 @Matze in wie fern kannst du die Datenbank nicht selecten ? Zitieren
Jaraz Geschrieben 13. Februar 2002 Geschrieben 13. Februar 2002 @DePlague Sowas kann passieren. Ich habe vor ca. 2 Jahren 2 Tage gebraucht um die Verbindung zur Oracle Datenbank hinzukriegen. Damals lag es an den Client Versionen. PHP brauchte unbedingt 8.1.5 und ich hatte 8.0.5 installiert. Die MSSQL Funktionen waren damals noch total Buggy. Ich hoffe es ist mittlerweile besser geworden. Gruß Jaraz Zitieren
Matze Geschrieben 14. Februar 2002 Geschrieben 14. Februar 2002 @JoelH Hi, ich kann mich zum Server noch connecten, aber wenn ich dann z.B. $var=mysql_select_db($dbname,$con_id); ausführe und danach versuche auf irgendeine Tabelle eine Query laufen lasse schmeisst er mir eine Fehlermeldung raus. Ich weis jetzt nicht mehr genau welche. (Guck ich nochmal nach). Wenn ich jetzt aber die Datenbank connecte und dann mysql($dbname,$query); aufrufe kann ich alles machen was ich will. Mit den rechten hab ich schon rumgespielt, aber nichts hat funktioniert... THX Zitieren
JoelH Geschrieben 14. Februar 2002 Geschrieben 14. Februar 2002 das ist seltsam. Die Fehlermeldung wäre wirklich nicht schlecht. 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.