Zum Inhalt springen

PHP4 / MSSQL7 Zugriffsproblem


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

*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. :rolleyes: 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

Link zu diesem Kommentar
Auf anderen Seiten teilen

@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

Link zu diesem Kommentar
Auf anderen Seiten teilen

@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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...