Veröffentlicht 19. August 200421 j Wie spreche ich mit dem PHP Skript diese Tabelle an? (MS SQL 2000 Server) SQL Server-Gruppe (local)->(Windows NT)->Datenbanken->master->Tabellen->ind_ven <?PHP //Datenbankserver $db_serv = 'localhost'; //Datenbank Name $db_name = 'ind_ven'; // User $db_user = 'user'; // Passwort $db_pass = 'pass'; // Verbindung zum MySQL Server herstellen $db = mysql_connect($db_serv, $db_user, $db_pass) or die('ERROR!'); // MySQL Datenbank wählen mysql_select_db($db_name, $db) or die('ERROR!'); ?>[/PHP] Danke, MfG AllThatsLeft
19. August 200421 j nimm mssql_*() statt mysql_*(): <?PHP //Datenbankserver $db_serv = 'localhost'; //Datenbank Name $db_name = 'ind_ven'; // User $db_user = 'user'; // Passwort $db_pass = 'pass'; // Verbindung zum MySQL Server herstellen $db = mssql_connect($db_serv, $db_user, $db_pass) or die('ERROR!'); // MySQL Datenbank wählen mssql_select_db($db_name, $db) or die('ERROR!'); ?> [/PHP]
23. August 200421 j Problem: Es passiert garnichts, der SQL Server 2000 ist Authentifizierungs-mäßig auf mixed Mode gestellt, dh es kann auch eine SQL Anmeldung erfolgen. Mit Accsess zb geht das auch, aber bei PHP stimmt da irgendwas nicht. Wie muss man denn den Server angeben? Localhost geht nicht. Bitte helft mir mal...
23. August 200421 j Äh. Wenn die Verbindung zum Server nicht klappt, sollte da nicht beim gegebenem Code nen "ERROR!" kommen? Kommt das denn? Kannst ja mal folgendes ausprobieren <? $db = @mssql_connect($db_serv, $db_user, $db_pass); if($db) { mssql_select_db($db_name, $db); echo "Jo, Klappt"; } else { die("<B>Klappt halt ma nich..."); } /* end if */ ?> [/php] Kommt da denn was? Wenn dein MSSQL Server an nem anderem Port läuft, musst du den bei der Adresse zupacken. Z.B.: [php] $db_serv = "host:port"; Ansonsten wüsst ich nicht, was du da noch so großartig angeben könntest. Localhost natürlich nur, wenn der Webserver auf der gleichen Kiste is wie der MS-SQL
23. August 200421 j ne, bekomme keinen Error ... dein Weg geht auch nicht ... ich bekomme nur ne leere Seite? Häh? Das ist echt mal unlogisch! PS: Andere PHP Ausgaben usw laufen auf dem Webserver. Mit dem gleichen Skript kann ich mich auch an einer MySQL DB, die neben dem SQL 2000 läuft, einloggen. :confused:
23. August 200421 j Änder mal in der PHP-Ini, daß er alle Fehler ausgibt. Und mach beim Code von varg auf jeden Fall das @ vor dem Befehl weg, das unterdrückt nämlich Fehlerausgaben. Und dann schau mal, ob du vielleicht in irgendner Log-Datei vom SQL-2000-Server wenigstens deine Anmeldeversuche wiederfindest, vielleicht steht da ja auch ein Grund für den Fehlschlag. Und du kannst ja anstelle von "localhost" mal die IP des Rechners angeben. Und lädt er die Seite denn zu Ende? Denn wenn du beim Script von varg nicht mal die "Klappt nicht.."-Meldung siehst, dann ist entweder grundsätzlich dein PHP-Server etwas komisch (funzt net) oder das Script hängt sich beim connect auf.
23. August 200421 j ahhhh, nach 50mal F5 (aktualisieren) bekomme ich: PHP has encountered an Access Violation at 01820AFD :confused:
23. August 200421 j ah ok, jetzt bekomme ich andauernd die ERROR Meldung, dh der Verbindungsversuch schlug fehl ... aber ich weiß nicht, was ich sonst als Datenbankserver angeben soll. localhost oder Hostname gehen nicht.
23. August 200421 j [...] Und mach beim Code von varg auf jeden Fall das @ vor dem Befehl weg, das unterdrückt nämlich Fehlerausgaben.[...] Upsi Wenn du die Netzwerk IP des MS-SQL Servers angibst (192.168.0.1 oder so), was passiert dann?
23. August 200421 j Also folgender Code: <?PHP //Datenbankserver $db_serv = 'localhost'; //Datenbank Name $db_name = 'ind_ven'; // User $db_user = 'user'; // Passwort $db_pass = 'pass'; // Verbindung zum MySQL Server herstellen $db = mysql_connect($db_serv, $db_user, $db_pass) or die('Keine Verbindung zum SQL-Server!'); // MySQL Datenbank wählen mysql_select_db($db_name, $db) or die('ERROR!'); ?> [/PHP] führt bei mir zu folgender Ausgabe: ERROR! Dh, er kann die Datenbank nicht wählen oder was? Ist was an der Syntax oder so falsch?
23. August 200421 j Wieso versuchst du eigentlich, mit den mysql Commands von PHP auf ne mssql db zu kommen? Oder war das nen Copy&Paste Fehler? <?PHP //Datenbankserver $db_serv = 'localhost'; //Datenbank Name $db_name = 'ind_ven'; // User $db_user = 'user'; // Passwort $db_pass = 'pass'; // Verbindung zum MySQL Server herstellen - wichtig mssql, kein mysql $db = mssql_connect($db_serv, $db_user, $db_pass) or die('Keine Verbindung zum SQL-Server!'); // MySQL Datenbank wählen - wichtig mssql, kein mysql mssql_select_db($db_name, $db) or die('ERROR!'); // <<< Das Error kommt? ?> [/php] Wenn das ERROR! kommt, und nicht das Keine Verbindung zum SQL-Server, glaub ich fast dass der Datenbankname nicht stimmt. Überprüf das mal
24. August 200421 j Hi Varg, ja das war ein Copy&Paste Fehler. Mit deinem Code bekomme ich genau dein Error unten. Ich kann auch irgednwas beliebiges für ERROR! eintragen, ich bekomme immer diese letzte DIE Ausgabe. Der Datenbankname stimmt definitiv, ich weiß nur nur ob ich dieses local/master/ usw davorhängen soll. Thx
24. August 200421 j Moin, es wär jedenfalls nen Versuch wert. Mir gehen nämlich die kreativen Ideen aus, woran das liegen könnt
24. August 200421 j gibt es vielleicht von der DB aus irgendwelche Restriktionen, wie du zugreifst? Kann ja sein, daß er bei Access, wo es bei dir funzt, über ODBC zugreift und der Server erlaubt es, während du den PHP-Zugriff nicht erlaubt bekommst.
24. August 200421 j Danke für die vielen Antworten und die nette Hilfe. Es geht jetzt alles... Thx! Ein weiteres Prob ist noch, dass ich es nicht schaffe, mich mit jemand anders zu authentifizieren als sa (Datenbankadmin von MS-SQL)
24. August 200421 j Woran lag es denn jetzt? Kannst du dich von Access aus als jemand anderes authentifizieren?
24. August 200421 j Es lag daran, dass ich jetzt den Datenbank-Server-Admin als Benutzer (sa) und sein Kennwort als Passwort eingegeben habe. Prompt lief alles. Eigentlich hatte ich ja meiner Datenbank einen anderen Benutzer zugewiesen, allerdings kommt der nicht bis zu DB...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.