helmuthelmut2000
Goto Top

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

Content-Key: 35830

Url: https://administrator.de/contentid/35830

Printed on: April 19, 2024 at 00:04 o'clock

Member: Xaero1982
Xaero1982 Jul 12, 2006 at 08:54:56 (UTC)
Goto Top
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).

<?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. face-smile

<?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
Member: Guenni
Guenni Jul 12, 2006 at 18:11:44 (UTC)
Goto Top
@Xaero1982

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
Member: Xaero1982
Xaero1982 Jul 13, 2006 at 06:34:47 (UTC)
Goto Top
thx face-smile

@ Helmut: Eine Resonanz wäre immer nett, da man nie weiß, ob derjenige überhaupt noch mal reingesehen hat oder nicht.
Member: helmuthelmut2000
helmuthelmut2000 Jul 13, 2006 at 17:49:39 (UTC)
Goto Top
Hallo,

Ja, ich bin schon da. Ich hatte gestern nur keine Zeit mehr zum
testen. Aber jetzt hab ichs vesucht. Also der ODBC Eintrag hat funktioniert,
Der Test mit der Verbindung war erfolgreich, aber jetzt bekomme ich noch
eine Fehlermeldung:

Error connecting to server. Server says: [Microsoft][ODBC SQL Server Driver][SQL Server]Fehler bei der Anmeldung für den Benutzer 'NT-AUTORITÄT\ANONYMOUS-ANMELDUNG'.

Muß ich da och einen Anmeldenamen eingeben.

Gruß
Helmut
Member: Xaero1982
Xaero1982 Jul 13, 2006 at 19:33:56 (UTC)
Goto Top
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 face-smile
Member: helmuthelmut2000
helmuthelmut2000 Jul 14, 2006 at 15:59:17 (UTC)
Goto Top
Hallo,


Jetzt gehts.
Bei dem ODBC Eintrag mach ich mit
SQL Server-Authentifizierung,
Vergebe eienen Benutzername und ein Passwort.

Diesen Benutzername und Passwort schreibe ich dann:

<?php
$conn = odbc_connect('ODBCNAME', 'Benutzername', 'Passwort', SQL_CUR_USE_ODBC) or die('Error connecting to server. Server says: '.htmlspecialchars(odbc_errormsg()));

Dann gehts.

mfG
Helmut