Mit PHP auf lokale MSSQL-Datenbank zugreifen

BenjaminB

Gesperrter Benutzer
17. Juni 2008
75
0
Hallo,

wie kann ich mit PHP auf die MSSQL-Datenbank des lokalen Rechners zugreifen. Ich habs folgendermaßen versucht:

Code:
$dsn = "localhost\JTLWAWI";
$uid = "sa";
$pwd = "sa04jT14";

mssql_connect($dsn,$uid,$pwd) or die(mssql_get_last_message());

mssql_select_db('eazybusiness');

und auch nur mit localhost und auch mit dem Rechnernamen, aber nichts hat funktioniert.

Wäre für eine Hilfe sehr dankbar.
 

HEPI

Gut bekanntes Mitglied
5. Dezember 2006
123
1
Hallo KiMoB.de,
könntest Du bitte auch diese Fragen antworten:

a) Ob ich alle Clint Tools installiert habe ?
b) Welche Erweiterung muss aktiviert sein ?
c) Welche DLL wohin kopiert ?

Schon jetzt ein "Danke" von einem Unwissenden.

Gruß HEPI
 

duerckheimer

Aktives Mitglied
9. August 2007
316
0
Quickborn
zu a.)
Für die Erweiterung müssen die MS SQL Client Tools auf dem System installiert sein, auf dem PHP installiert ist. Die Client Tools können entweder von der MS SQL Server-CD oder durch kopieren der ntwdblib.dll von \winnt\system32 auf dem Server nach \winnt\system32 auf dem PHP-Rechner installiert werden. Mit dem Kopieren der ntwdblib.dll wird nur der Zugriff durch benannte Pipes (named pipes) unterstützt. Für die Konfiguration des Clients ist eine Installation aller Tools nötig.

zu b.)
Die MSSQL-Erweiterung wird durch den Eintrag extension=php_mssql.dll in die php.ini aktiviert.

zu c.)siehe a.)

Mehr Informationen findet ihr unter Google und http://de.php.net/manual/de/book.mssql.php
 

Heinz Schrot

Gut bekanntes Mitglied
1. August 2009
240
14
AW: Mit PHP auf lokale MSSQL-Datenbank zugreifen

Hallo,

hat von euch einer erfolgreich per php zu der DB verbunden?

Ich bräuchte die Datenbank um Daten auszuwerten. Würde das am liebsten per php tun, weil ich Felder auswerten will.

Grüße
 

Heinz Schrot

Gut bekanntes Mitglied
1. August 2009
240
14
AW: Mit PHP auf lokale MSSQL-Datenbank zugreifen

Alternativ wollte ich mit MySQL Migration Toolkit die DB von Mssql nach MySQL migrieren ( da ich die Daten nur einmal im Monat erheben muss, is das ok).
Jedoch kommt das Toolkit nicht an die DB ran.
Hier der Log:
Connecting to source database and retrieve schemata names.
Initializing JDBC driver ...
Driver class MS SQL JDBC Driver
Opening connection ...
Connection jdbc:jtds:sqlserver://SERVER:1433/eazybusiness;user=sa;password=sa04jT14;charset=utf-8;domain=
The list of schema names could not be retrieved (error: 0).
ReverseEngineeringMssql.getSchemata :Network error IOException: Connection refused: connect
Details:
net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:372)
net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:178)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
com.mysql.grt.modules.ReverseEngineeringGeneric.establishConnection(ReverseEngineeringGeneric.java:141)
com.mysql.grt.modules.ReverseEngineeringMssql.getSchemata(ReverseEngineeringMssql.java:99)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.mysql.grt.Grt.callModuleFunction(Unknown Source)
 

wuschba

Aktives Mitglied
2. Oktober 2009
134
0
AW: Mit PHP auf lokale MSSQL-Datenbank zugreifen

Hat das jemand hinbekommen?

Habt ihr es mal über ODBC mit odbc_connect versucht? Damit scheint man per PHP auf die DB kommen zu können.
 

Heinz Schrot

Gut bekanntes Mitglied
1. August 2009
240
14
AW: Mit PHP auf lokale MSSQL-Datenbank zugreifen

Hat das jemand hinbekommen?

Habt ihr es mal über ODBC mit odbc_connect versucht? Damit scheint man per PHP auf die DB kommen zu können.

SO bei mir hat es geklappt:
Hatte die falsche ntwdblib.dll ...

Connecte ganz normal per
PHP:
mssql_connect
DB Abfragen sind sehr flot. Subjektiv schneller als MySQL (gemessesn hab ichs noch nicht).
 

thowi

Sehr aktives Mitglied
8. Juni 2018
433
66
Ich hänge mich hier einfach mal mit dran, denn ich versuche gerade, ebenfalls per mssql_connect zu connecten. Exakt wie oben im 1. Post. Bin allerdings nicht lokal, sondern habe die Seite bei All-Inkl laufen. Der Support versicherte mir, dass das MS SQL Connect per PHP aktiviert ist und ich es ganz normal benutzen kann.
PHP:
$s = @mssql_connect($server4, $user, $pw)
    or die("Couldn't connect to SQL Server on $server4 : " . mssql_get_last_message());
Nach Aufruf Fehlermeldung: Couldn't connect to SQL Server... get_last_message liefert leider keine Ausgabe.

Also, irgendwas stimmt hier nicht. Jemand von euch bei All-Inkl oder einem anderen Hoster und hat die Verbindung ordentlich hinbekommen? Ich mein, mit Wawi-Clients verbinden geht ja auch....
Und ja, user - pass - ip sind richtig 😀

Angeblich kann man nur auf 3 verschiedene Arten eine Verbindung aufbauen:
PHP:
$con = mssql_connect('LOCALHOST','login','pass');
$con = mssql_connect('LOCALHOST\SQLEXPRESS','login','pass');
$con = mssql_connect('LOCALHOST,1269','login','pass');
Alle 3 Varianten probiert, keine funktioniert. Aber eigentlich brauchen wir ja sowas wie
PHP:
'LOCALHOST,PORT\JTLWAWI'
... 😵
 

MBesancon

Administrator
Mitarbeiter
1. Oktober 2010
2.087
218
Erkelenz
Wenn du "LOCALHOST" nutzt müsste die MsSQL-DB ja auf dem gleichen Server liegen. Aber das bezweifele ich bei All-Inkl doch stark. Gib uns bitte ein wenig mehr Infos zu deiner Umgebung 🙂.
 

elevennerds.de

Sehr aktives Mitglied
23. September 2015
1.235
212
Was hast Du denn im WAWI Client eingestellt? Genauso muss es auch in PHP funktionieren.

So verbinde ich meine Software:
PHP:
$db = new PDO('sqlsrv:Server='.$server.';Database='.$db, $user, $password);
 

thowi

Sehr aktives Mitglied
8. Juni 2018
433
66
Die 3 Zeilen mit LOCALHOST sind nur ein Zitat aus dem verlinkten Artikel und sollen zeigen, wie man IP Port und \JTLWAWI kombinieren kann und das das irgendwie nicht zu dem passt, was man in den Wawi Clients angeben muss.

Ich habe einen Rootserver bei alfahosting, also feste IP. Genau die Zugangsdaten benutze ich auch für den connect.
Was hast du denn in $server stehen? Nur die IP? IP und Port? Mit \JTLWAWI oder ohne?

Mit den lokalen Clients verbinde ich zum Server über 93.XX.XXX.XXX,51XX9\JTLWAWI
Wenn ich das genauso in $server speichere, bekomme ich keine Verbindung (User + pass sind 100% korrekt) - mit leerem mssql_get_last_message()
 

elevennerds.de

Sehr aktives Mitglied
23. September 2015
1.235
212
Versuche doch mal mit sqlcmd an den Server zu gehen und schau, ob Du da eine Verbindung bekommst. Alternativ die Verbindung mit Wireshark mitschneiden.
 
  • Gefällt mir
Reaktionen: thowi

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.901
545
Moin,

ich möchte auch Daten auslesen habe deshalb die php Anwendungen auf ein QNAP (Webserver) gelegt.
Bei einem normalen HTML Code funzt alles. Nur bekomme ich keine Verbindung zum SQL Server. Muss ich das alles auch installieren?

Hast du auch alle MS SQL Client Tools installiert?
Hast du die Erweiterung in der php.ini aktiviert?
Hast du die DLL kopiert?
 

thowi

Sehr aktives Mitglied
8. Juni 2018
433
66
Nee, das kam bei mir alles nicht zum Tragen, weil ich die PHP Sachen auf unserem All inkl Webspace laufen lasse. Dort kann ich nix konfigurieren, sondern muss nehmen, was da ist.

Ich habs nun mit PDO gelöst, was einwandfrei funktioniert.
 

thowi

Sehr aktives Mitglied
8. Juni 2018
433
66
Nein, Die JTL Datenbank liegt auf nem Windows VServer und bei All-Inkl greife ich einfach nur im PHP drauf zu.
 

arich001

Sehr aktives Mitglied
21. April 2021
321
48
Sorry wenn ich hier so einen uralten Beitrag reaktiviere...

Was genau benötige ich alles um auf einer lokalen JTL-Testumgebung mit PHP (via XAMPP) auf die JTL-DB zugreifen zu können ?

System:
  • Windows 10 (x64)
  • PHP 7.4.22
  • xampp-windows-x64-7.4.22-0-VC15
  • JTL 1.5.33.0
 

Ähnliche Themen