keine Ergebnis per PDO-Zugriff (ODBC) aud MS SQL-Server von Linux

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

  • keine Ergebnis per PDO-Zugriff (ODBC) aud MS SQL-Server von Linux

    Hallo!

    Ich nutze zum Entwickeln einen Windows-Rechner mit XAMPP.
    Die Live-Umgebung ist ein WebServer unter Linux (Debian), von wo wir per ODBC auf eine MS SQL Datenbank zugreifen.

    Jetzt funktioniert auf meiner Entwicklungs-Umgebung alles, aber nach dem Upload auf den WebServer bekomme ich ein leeres Ergebnis zurück.

    PHP-Code:
    $DB = new PDO("odbc:".$odbcVERB$odbcUSER$odbcPASS);

    $SQL 'SELECT ID, bereich1, bereich2 FROM Tabelle WHERE art=:art ORDER BY nummer ASC';

    $result $DB->prepare($SQL);
    $paramenter = array("art" => $art);
    $result->execute($paramenter);
    $alles $result->fetchAll(); 
    Wie gesagt auf meiner Entwicklungsumgebung bekomme ich als Ergebnis die korrekten 8 Einträge, aber auf dem WebServer bekomme ich nichts zurück?

    Achja ... auf beiden System (Entwicklung, Live) ist die DSN korrekt eingerichtet.
    dies schrieb
    derSESO

  • #2
    Mal in den Error-Logs nachgeschaut? Ich tippe auf das übliche Problem mit der Groß- und Kleinschreibung. Linux ist case-sensitive, Windows nicht.
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Also sowohl der Name des DSN und als auch die Spaltennamen und der Tabellename sind korrekt bzgl. der Groß-Kleinschreibung.
      dies schrieb
      derSESO

      Kommentar


      • #4
        http://php.net/manual/en/pdo.error-handling.php
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Wenn es Fehler geben würde, hätte ich es geschrieben.
          Ich bekomme als Ergebnis einfach die Antwort, das nichts gefunden wurde.
          Was allerdings eben nicht sein kann.
          dies schrieb
          derSESO

          Kommentar


          • #6
            Wenn ich mittels odbc_connect() und odbc_exec() usw. abfrage, bekomme ich meine Ergebnisse.
            dies schrieb
            derSESO

            Kommentar


            • #7
              was sagt denn print_r(PDO::getAvailableDrivers());?

              Peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                Zitat von Kropff Beitrag anzeigen
                was sagt denn print_r(PDO::getAvailableDrivers());?

                Peter
                Also die Antwort auf dem Live-System lautet:
                Array ( [0] => mysql [1] => odbc )

                Auf meinem Test-System:
                Array ( [0] => mysql [1] => odbc [2] => sqlite )

                Wobei das "sqlite" nichts beeinflussen sollte - ich nutze kein "sqlite".


                Habe jetzt mit folgender Zeile:
                PHP-Code:
                $test $DB->query('SELECT TOP 5 * FROM TBA_GESAMT')or die(print_r($DB->errorInfo())); 
                folgende Antwort auf dem Live-System:
                Code:
                Array ( [0] => 00000 [1] => 0 [2] => (SQLExecute[0] at /build/buildd-php5_5.2.0+dfsg-8+etch16-i386-uC66is/php5-5.2.0+dfsg/ext/pdo_odbc/odbc_stmt.c:133) [3] => 00000 ) 1
                Auf meinem Test-System bekomme ich 5 korrekte Ergebnisse.
                Zuletzt geändert von derSESO; 10.07.2015, 07:34.
                dies schrieb
                derSESO

                Kommentar


                • #9
                  Welchen Inhalt hat $test?

                  Hast du bei PDO auch den Error-Mode auf PDO::ERRMODE_EXCEPTION gesetzt?

                  http://php.net/manual/en/pdo.error-handling.php
                  Zuletzt geändert von h3ll; 10.07.2015, 18:47.

                  Kommentar


                  • #10
                    Zitat von h3ll Beitrag anzeigen
                    Welchen Inhalt hat $test?

                    Hast du bei PDO auch den Error-Mode auf PDO::ERRMODE_EXCEPTION gesetzt?

                    PHP: Errors and error handling - Manual
                    Also...
                    - $test beinhaltet nichts - bekomme ja per "or die()" die Meldung ausgegeben
                    - den Error-Mode habe ich hinzugefügt -> keine Veränderung
                    dies schrieb
                    derSESO

                    Kommentar


                    • #11
                      Zitat von derSESO Beitrag anzeigen
                      Also...
                      - $test beinhaltet nichts - bekomme ja per "or die()" die Meldung ausgegeben
                      Was ist "nichts"?

                      NULL?
                      FALSE?
                      ""?
                      0?
                      []?

                      Kommentar


                      • #12
                        Na eben nichts ... "".
                        dies schrieb
                        derSESO

                        Kommentar


                        • #13
                          "" ist ein leerer String und nicht "nichts". Das wäre sehr ungewöhnlich. Bist du dir sicher? Warum zeigst du nicht einfach die Ausgabe?

                          Kommentar


                          • #14
                            Also...

                            Die Query wird durch das "or die()" ja abgebrochen.
                            Das bedeutet, das kein Ergebnis zurück gegeben wird, weil etwas nicht stimmt.

                            Entferne ich das "or die()" am Ende, dann steht in $test nichts drin.
                            Normalerweise müsste die Query ja ein Array/Objekt zurück geben.

                            Ich habe jetzt mal ein "var_dump($test)" ausgegeben.
                            Ergebnis: bool(false)
                            dies schrieb
                            derSESO

                            Kommentar


                            • #15
                              Zitat von derSESO Beitrag anzeigen
                              Ich habe jetzt mal ein "var_dump($test)" ausgegeben.
                              Ergebnis: bool(false)
                              Also doch nicht "nichts", sondern FALSE. Schwere Geburt, aber endlich ist da Klarheit.

                              Ich tippe darauf, dass irgendwas mit der Serverkonfiguration nicht passt, aber das wirst du dir vermutlich auch schon gedacht haben. Schon mal den Serveradministrator darauf angesprochen?

                              Funktioniert wenigstens ein "SELECT 1"?

                              Kommentar

                              Lädt...
                              X