Ankündigung

Einklappen
Keine Ankündigung bisher.

Abfrage von einem externen MS-SQL Server

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Abfrage von einem externen MS-SQL Server

    Hallo,
    ich möchte zusätzlich zur Mysql Datenbank (localhost) eine externe Datenbank abfragen, welche auf einem externen WIN2008R2 (MSSQL Server 2008 Standard) Server liegt. Eine feste IP Adresse, Zugangsdaten zur Datenbank sowie Port ist gegeben.
    Das ist für mich absolutes Neuland und deshalb wollte ich hier mal nachfragen, ob hier schon jemand Erfahrung gemacht hat und mir evtl. ein paar gute Links zum einlesen senden kann, damit ich weiß, wie ich das ganze anpacken kann.


    Gruß
    Falke07



  • #2
    Schau mal hier, dort gehts auch um die Verbindung zu so einem Server. Dort sind auch weitere Links.
    https://www.php.de/forum/webentwickl...odbc-ansteuern (~ ab Beitrag #4)
    Dort wird auch auf die MS Doku etc verwiesen.
    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Hallo,
      Sorry, das ich mich erst jetzt melde, habe mich mal ein bisschen eingelesen und bin verwirrt. Mal schreibt man von ODBC, mal soll man es weg lassen, da ODBC langsam sein soll. Klar, würde ich mich für die schnellere Lösung (wenn es den so sei) entscheiden. Des Weiteren stellt sich für mich die Frage, wo ich die Instanz sowie den Port mitgeben kann.
      Gem. einiger Aussagen benötige ich beim Login auf einen externen MSSQL Server die IP Adresse, die Instanz und den Port.

      Ich habe mal folgendes:
      PHP-Code:
      try {
          
      $conn = new PDO('sqlsrv:Server='.$ServExt.','.$PortExt.';Database='.$DbExt$UsrExt$PasswExt, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
      }
      catch (
      PDOException $e) {
          echo 
      'Verbindung fehlgeschlagen: ' $e->getMessage();
          exit;

      jedoch bekomme ich keine Verbindung mit der Meldung, Could not find Driver. Von welchem Treiber ist hier jetzt die Rede, den der ODBC ist laut Provider installiert. Welcher Eintrag muss klar gesetzt sein, damit dies auch gegeben ist (phpinfo())

      Hilfe

      SL
      Falke07

      Kommentar


      • #4
        Du brauchst "php_pdo_mssql", aber die sind nicht im Lieferumfang von PHP enthalten und müssen gesondert installiert werden.
        (edit: sehe grad, die heissen anders: "php_pdo_sqlsrv...")

        https://docs.microsoft.com/en-us/sql...ql-server-2017

        Lass dich nicht von den Versionsnummern irritieren, die haben nix mit der PHP Version zu tun

        Desweiteren musst du auch darauf achten, die richtige Datei für deine PHP-Version, Threading Model und Betriebssystem auzuwählen!

        Webserverneustart nach dem Kopieren nicht vergessen

        MS-example
        https://docs.microsoft.com/en-us/sql...ql-server-2017

        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Oha,
          bedeutet das, das ich auf dem externen MSSQL Server den Treiber
          The Microsoft Drivers 4.0, 3.2, 3.1, and 3.0 for PHP for SQL Server provide connectivity to Microsoft SQL Server from PHP applications.
          installieren muss ?
          Could not find driver, dachte ich, das Problem liegt auf meinen Server.

          Ansonsten habe ich mir das auch schon vorher durchgelesen. Dort steht aber nirgends etwas, wie ich den Port und die Instanz angeben muss ;-(




          SL
          Falke07

          Kommentar


          • #6
            Natürlich liegt das Problem auf dem Server, der die PHP Applikation betreibt...

            PHP-Code:
            Ansonsten habe ich mir das auch schon vorher durchgelesenDort steht aber nirgends etwaswie ich den Port und die Instanz angeben muss ;-( 
            Das wird doch bereits im DSN gemacht?
            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

            Kommentar


            • #7
              Hmm,

              also jetzt bin ich am Ende und stelle mal vermutlich blöde Fragen:

              Es gibt wohl 2 Wege, auf eine externe MSSQL Datenbank zuzugreifen. Einmal ohne und einmal mit ODBC.

              Ich gehe jetzt mal den ODBC WEG:
              - Ich habe jetzt mal den msodbcsql_17.2.0 auf dem WIN2008 installiert und durchgestartet. Somit sollte doch auf dem WIN Server alles getan sein, um zuzugreifen.
              - Wenn ich nun die phpinfo aufrufe, sollte welcher Eintrag unter ODBC stehen, damit auf dem php Server ebenfalls der Treiber richtig installiert ist, da es wohl an dem php- Server liegen muss

              Denn: Ich bekomme immer noch die unveränderte Fehlermeldung bei folgendem Verbindungsaufbau:
              PHP-Code:
              try {
                  
              $conn = new PDO("odbc:Driver={SQL Server Native Client 17.2};Server=$ServExt;port=$PortExt;Database=$DbExt"NULLNULL, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
              }
              catch (
              PDOException $e) {
                  echo 
              'Verbindung fehlgeschlagen: ' $e->getMessage();
                  exit;

              Auch, wenn ich NULL gegen User und Passw austausche.

              Kommentar


              • #8
                Nochmal: es liegt nicht am MSSQL Server. Wäre ohnehin fraglich, ob du mit einem 17er native client an einen 2008er MSSQL connecten könntest...

                Du musst den richtigen CLIENT Treiber installieren, der Client ist in diesem Fall der Webserver (PHP).

                Es steht alles hier:
                https://docs.microsoft.com/de-de/sql...ql-server-2017

                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  Hallo zusammen,

                  ich habe gerade schreckliche Dinge über meinen WEB Server erfahren und muss mir einen neuen Server zulegen. Deshalb muss ich warten, bis ich den neuen Server habe und es dann erneut versuchen.
                  Somit kann das Thema mal geschlossen werden.

                  Danke an alle für die Tipps und Hinweise.

                  SL
                  Falke07

                  Kommentar


                  • #10
                    Es gibt keinen SQL Server Native Client 17.2. Das ist die Versionsnummer vom ODBC Treiber.
                    Neben dem ODBC Treiber muss pdo_sqlsrv oder sqlsrv als PHP Erweiterung installiert sein.

                    Bei GitHub sind Schritt für Schritt Anleitungen von Microsoft verlinkt, je nach dem ob auf deinem Webserver Linux oder Windows läuft.

                    Kommentar

                    Lädt...
                    X