Mit PHP auf einen MSSQL Server verbinden
Hallo,
Ich habe ein Problem was für euch Profis bestimmt nicht besonderes ist.
Also ich habe einen Server2003 mit IIS6.0 am laufen mit MSSQL2000.
Da habe ich viele Sachen im Intranet am Laufen.
Auf meinem Laptop habe ich den Apache2 und PHP5 und Mysql5 am laufen.
Meine neuen Sachen mache ich jetzt alles über PHP.
Jetzt sollte ich auch auf meine MSSQL-DB mit PHP zugreifen können.
Aber ich bekomme das einfach nicht hin.
Ich habe da in Google schon geschaut aber nichts wirklich nützliches
gefunden.
Soll ich da jetzt einen ODBC Vebindung machen(wie geht das?) oder
kann man da eine andere Verbindung auch machen?
Was muß ich denn da jetzt in meiner PHP.ini alles ändern oder eintragen
und was muß ich da denn noch alles für Einstellungen machen?
Für eure Hilfe wäre ich euch sehr Dankbar.
Gruß
Helmut
Ich habe ein Problem was für euch Profis bestimmt nicht besonderes ist.
Also ich habe einen Server2003 mit IIS6.0 am laufen mit MSSQL2000.
Da habe ich viele Sachen im Intranet am Laufen.
Auf meinem Laptop habe ich den Apache2 und PHP5 und Mysql5 am laufen.
Meine neuen Sachen mache ich jetzt alles über PHP.
Jetzt sollte ich auch auf meine MSSQL-DB mit PHP zugreifen können.
Aber ich bekomme das einfach nicht hin.
Ich habe da in Google schon geschaut aber nichts wirklich nützliches
gefunden.
Soll ich da jetzt einen ODBC Vebindung machen(wie geht das?) oder
kann man da eine andere Verbindung auch machen?
Was muß ich denn da jetzt in meiner PHP.ini alles ändern oder eintragen
und was muß ich da denn noch alles für Einstellungen machen?
Für eure Hilfe wäre ich euch sehr Dankbar.
Gruß
Helmut
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 35830
Url: https://administrator.de/forum/mit-php-auf-einen-mssql-server-verbinden-35830.html
Ausgedruckt am: 15.01.2025 um 16:01 Uhr
6 Kommentare
Neuester Kommentar
Schon komisch, dass ich dazu was bei google finde.
ODBC MSSQL PHP ....
wie dem auch sei. Ich habe es gerade mit einer Access DB erfolgreich geschafft.
Schritt 1: Start -> Systemsteuerung -> Verwaltung -> Datenquellen -> SystemDSN -> Hinzufügen -> SQL Server -> Fertig Stellen -> *Name* eintragen (merken) -> Beschreibung (nicht relevant) -> Server (dein Server mit der SQL DB) -> Weiter -> Authentifizierung festlegen -> (weiter komm ich nicht, weil kein SQL Server am laufen ist).
Sollte nicht so unterschiedlich zu Access sein....
Oder etwa doch?
Aber wo wir schon mal dabei sind und wenn du Ahnung von PHP hast, kannste mir ja mal helfen.
So, ich möchte, dass er mir Seriennummer und Benutzer immer in einer Tabellenreihe ausgibt, aber stattdessen macht er das:
Seriennummer
Name
Eine Tabelle(also ein Kasten)
Seriennummer
Name
Eine Tabelle(also ein Kasten)
.
.
.
usw.
Ich möchte aber:
Tabelle
Spalte1
Reihe1
Seriennummer
Spalte2
Reihe1
Benutzername
.
.
.
usw
ODBC MSSQL PHP ....
wie dem auch sei. Ich habe es gerade mit einer Access DB erfolgreich geschafft.
Schritt 1: Start -> Systemsteuerung -> Verwaltung -> Datenquellen -> SystemDSN -> Hinzufügen -> SQL Server -> Fertig Stellen -> *Name* eintragen (merken) -> Beschreibung (nicht relevant) -> Server (dein Server mit der SQL DB) -> Weiter -> Authentifizierung festlegen -> (weiter komm ich nicht, weil kein SQL Server am laufen ist).
<?php
$conn = odbc_connect('***Name***', '', '', SQL_CUR_USE_ODBC) or die('Error connecting to server. Server says: '.htmlspecialchars(odbc_errormsg()));
//Deine Abfragen was auch immer
odbc_close($conn);
?>
Sollte nicht so unterschiedlich zu Access sein....
Oder etwa doch?
Aber wo wir schon mal dabei sind und wenn du Ahnung von PHP hast, kannste mir ja mal helfen.
<?php
$conn = odbc_connect('Inventar.mdb', '', '', SQL_CUR_USE_ODBC) or die('Error connecting to server. Server says: '.htmlspecialchars(odbc_errormsg()));
/* run insert */
$stmt = odbc_exec($conn, "SELECT * FROM tbl_Maincomputer" );
while($row = odbc_fetch_array($stmt)){
$i++;
echo('<table border=1><td><tr>'.'Seriennummer: '.$row["Seriennummer"].'
'.'Benutzer: '.$row["MBenutzer"].'
');
echo('
');
}
/* close connection */
odbc_close($conn);
?>
So, ich möchte, dass er mir Seriennummer und Benutzer immer in einer Tabellenreihe ausgibt, aber stattdessen macht er das:
Seriennummer
Name
Eine Tabelle(also ein Kasten)
Seriennummer
Name
Eine Tabelle(also ein Kasten)
.
.
.
usw.
Ich möchte aber:
Tabelle
Spalte1
Reihe1
Seriennummer
Spalte2
Reihe1
Benutzername
.
.
.
usw
@Xaero1982
Hi,
in deinem Quellcode legst du innerhalb der while-Schleife bei jedem
Durchgang eine neue Tabelle an:
Die Tabelle darfst du nur einmal vor der while-Schleife anlegen:
Die Funktion implode("Trennzeichen",Variable) erspart dir außerdem eine
Menge Tipparbeit.
Sie fügt für jeden Spalteneintrag ein Trennzeichen ein, im Fall oben sinnigerweise
das <td>, und anschließend den Spaltenwert selber. Ein abschließendes
</td> ist nicht notwendig.
Gruß
Günni
Hi,
in deinem Quellcode legst du innerhalb der while-Schleife bei jedem
Durchgang eine neue Tabelle an:
while($row = odbc_fetch_array($stmt)){
$i++;
echo('<table border=1>.....usw.
Die Tabelle darfst du nur einmal vor der while-Schleife anlegen:
echo("<table border=1">;
while($row = odbc_fetch_array($stmt)){
echo "<tr><td>";
echo implode("<td>", $row);
echo "</tr>";
}
echo "</table>";
Die Funktion implode("Trennzeichen",Variable) erspart dir außerdem eine
Menge Tipparbeit.
Sie fügt für jeden Spalteneintrag ein Trennzeichen ein, im Fall oben sinnigerweise
das <td>, und anschließend den Spaltenwert selber. Ein abschließendes
</td> ist nicht notwendig.
Gruß
Günni
Von dem Problem hab ich gelesen.
Das ist ein Problem mit den Rechten auf dem Server. Wie genau das zu lösen ist hab ich leider keinen Schimmer. Kann es selbst nicht testen, da kein SQL Server.
Google mal nach der Fehlermeldung. Solltest was zu finden.
Wenn du ne Lösung hast bitte auch hier posten.
Danke
Das ist ein Problem mit den Rechten auf dem Server. Wie genau das zu lösen ist hab ich leider keinen Schimmer. Kann es selbst nicht testen, da kein SQL Server.
Google mal nach der Fehlermeldung. Solltest was zu finden.
Wenn du ne Lösung hast bitte auch hier posten.
Danke