Ankündigung

Einklappen
Keine Ankündigung bisher.

PDO Prepared Statements :named SELECT WHERE NULL

Einklappen

Neue Werbung 2019

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

  • #16
    Zitat von psoido Beitrag anzeigen
    "Nein, ..." Du weißt selbst dass das nicht stimmt. Wenn execute() ein false liefert, dann ist was schief gelaufen, ganz ohne Exception und Error.
    Aktiviere das Werfen von Exceptions, dann wird die Ausführung von execute() abgebrochen und es gibt gar keinen Rückgabewert.

    PHP-Code:
    $db = new PDO('mysql:host=localhost;dbname=test;charset=utf8''root''', [
        
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        
    PDO::ATTR_EMULATE_PREPARES => true
    ]);

    $sql "SELECT nothing FROM non_existing_table";
    $stmt $db->prepare($sql);

    $result null;

    try {
        
    $result $stmt->execute();
    } catch (
    Exception $e) { }

    var_dump($result);
    // NULL 
    Und ohne Exceptions würde ich nicht arbeiten wollen. Warum sich das Leben unnötig schwer machen?

    Also in der Praxis kommt ein FALSE bei execute() niemals vor, wenn man sauber mit Exceptions arbeitet. Von daher kann man den Rückgabewert von execute() ignorieren. Wenns funktioniert funktionierts. Wenn nicht, gibts eine Exception. So einfach ist das.

    Kommentar


    • #17
      Zitat von hellbringer Beitrag anzeigen
      Aktiviere das Werfen von Exceptions, dann wird die Ausführung von execute() abgebrochen und es gibt gar keinen Rückgabewert.
      Zum Glück ist das nicht die letzte Weisheit. Nachdem ich Username und Passwort in Blanktext über das Internet per Exception gesendet hatte war das gleich mal per Catch deaktiviert und wird es für immer bleiben. Weitere Experimente mit Exception kommen mir damit nicht ins Script. Ein execute() wird unabhängig davon immer auf ein false geprüft. Und falls false, dann geht es nicht weiter. Alles andere kann machen wer will.

      Kommentar


      • #18
        Zitat von psoido Beitrag anzeigen
        Zum Glück ist das nicht die letzte Weisheit. Nachdem ich Username und Passwort in Blanktext über das Internet per Exception gesendet hatte war das gleich mal per Catch deaktiviert und wird es für immer bleiben.
        Nochmal: Hör auf deine wilden und fantasievollen Spekulationen als Fakten hinzustellen. Nur weil du dir etwas so einbildest, muss es in der Realität nicht so sein.

        Zitat von psoido Beitrag anzeigen
        Weitere Experimente mit Exception kommen mir damit nicht ins Script.
        Sorry, aber du hast echt einen Vogel.

        Kommentar


        • #19
          hellbringer, ich sagte Du sollst damit aufhören, weil Du es letztendlich doch nicht schaffst. Bleib am Ball und lenk dich nicht ab!
          Hier zum selber ausprobieren:
          PHP-Code:
          <?php
          $db_connect 
          = new PDO("mysql:host=localhost;dbname=db_name""user""password");
          exit;
          ?>
          Code:
          Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user 'user'@'localhost' (using password: YES) in /.../....php:2 Stack trace: #0 /.../....php(2): PDO->__construct('mysql:host=loca...', 'user', 'password') #1 /.../....php(161): require_once('/.../...') #2 {main} thrown in /.../....php on line 2
          Keine Ausreden mit, man hätte müsste sollte try case blabla...
          An anderer Stelle im Inet wird plausibel erklärt auf die Ausgabe der Exceptions zu verzichten. Das ist machbar.

          Kommentar


          • #20
            psoido

            wieso soll das nicht stimmen, in der doku steht

            https://www.php.net/manual/de/pdostatement.fetch.php "false bei fehler"

            execute https://www.php.net/manual/de/pdostatement.execute.php false bei fehler

            wenn du fehler natürlich auf exceptions umstellst, stellst du dann die funktionsweise um wo ist das Problem?
            apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

            Kommentar


            • #21
              Zitat von psoido Beitrag anzeigen
              hellbringer, ich sagte Du sollst damit aufhören, weil Du es letztendlich doch nicht schaffst. Bleib am Ball und lenk dich nicht ab!
              Hier zum selber ausprobieren:
              PHP-Code:
              <?php
              $db_connect 
              = new PDO("mysql:host=localhost;dbname=db_name""user""password");
              exit;
              ?>
              Code:
              Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user 'user'@'localhost' (using password: YES) in /.../....php:2 Stack trace: #0 /.../....php(2): PDO->__construct('mysql:host=loca...', 'user', 'password') #1 /.../....php(161): require_once('/.../...') #2 {main} thrown in /.../....php on line 2
              Was ist damit? Das hat doch genau nichts mit deiner Aussage zu tun. Hier wird nirgendwo ein Passwort als Klartext übers Internet übertragen.

              Zitat von psoido Beitrag anzeigen
              Keine Ausreden mit, man hätte müsste sollte try case blabla...
              Du hast ständig nur an den Haaren herbeigezogene Ausreden. Kehr doch bitte erstmal vor deiner eigenen Türe.

              Zitat von psoido Beitrag anzeigen
              An anderer Stelle im Inet wird plausibel erklärt auf die Ausgabe der Exceptions zu verzichten. Das ist machbar.
              Es gibt auch Stellen im Internet, die erklären, dass die Erde eine Scheibe ist und dass 5G-Strahlen Corona verbreiten.

              Die Frage ist, gehört man zu den Leuten, die solche Spinnereien ungeprüft glauben, oder gehört man zu den Leuten, die selber denken und Fakten recherchieren können?

              Kommentar


              • #22
                hellbringer, ich merke schon, du kannst es nicht lassen, also scheint es dein Charakter zu sein.
                Aufgepasst: Im obigen Beispiel lautet das Passwort: password
                Ich traue dir zu, dass du das raffst, oder irgendetwas anderes ist im Busch.
                PDOException berührt username und password. Beides bleibt von PDOException nicht untouched. Das ist nicht zu vernachlässigen. Deswegen bleibt PDOException von mir untouched.

                Kommentar


                • #23
                  Zitat von psoido Beitrag anzeigen
                  hellbringer, ich merke schon, du kannst es nicht lassen, also scheint es dein Charakter zu sein.
                  Aufgepasst: Im obigen Beispiel lautet das Passwort: password
                  Ich traue dir zu, dass du das raffst, oder irgendetwas anderes ist im Busch.
                  PDOException berührt username und password. Beides bleibt von PDOException nicht untouched. Das ist nicht zu vernachlässigen. Deswegen bleibt PDOException von mir untouched.
                  ja das passiert tag taglich dass man eine execption in der webseite sieht. deswegen catchen wir generell alles und loggen es weg so dass es nicht nach außen gelangt. Auf live Servern werden sogar Fehlermeldungen unterdrückt weil die Entwickler zu faul sind, sauber zu programmieren und angst haben dass SQL queries usw nach außen kommen.

                  es gibt viele kleine komische Dinge in PHP deshalb setzen die meisten auf einen Framework bei dem alles soweit es geht bedacht wird. du wirst immer komische und/oder unlogische Dinge sehen in jeder Programmiersprache..

                  hier beispiel

                  $row = false;
                  echo count($row);

                  echo $row == 0; usw dank der schwachen typisierung und vielen einstellungen hat man dann komische fälle an die man im Sourcode nicht denkt.

                  aber tu dir kein Zwang an, hier ist PHP Source https://github.com/php/php-src versuche es zu beheben..

                  die PHP Community hat ein Guide aufgestellt für best practices https://phptherightway.com/ wenn man denen folgt ist alles gut, wenn man es nicht tut, muss man sich eben aufregen und man stirbt irgendwann an herzinfrakt
                  apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

                  Kommentar


                  • #24
                    Zitat von psoido Beitrag anzeigen
                    hellbringer, ich merke schon, du kannst es nicht lassen, also scheint es dein Charakter zu sein.
                    Aufgepasst: Im obigen Beispiel lautet das Passwort: password
                    LOL. Und wenn du dein Passwort "Access denied" nennst, steht es dann auch in der Fehlermeldung. Sapperlot! Wie kann das wohl funktionieren?

                    Zitat von psoido Beitrag anzeigen
                    Ich traue dir zu, dass du das raffst, oder irgendetwas anderes ist im Busch.
                    Das einzige, was hier im Busch ist, ist deine Fantasie.

                    Zitat von psoido Beitrag anzeigen
                    PDOException berührt username und password. Beides bleibt von PDOException nicht untouched. Das ist nicht zu vernachlässigen. Deswegen bleibt PDOException von mir untouched.
                    Nein, das stimmt nicht und bildest du dir nur ein. Mal davon abgesehen, dass Fehlermeldungen nicht übers Internet übertragen werden, sondern nur in einer lokalen Log-Datei landen, wenn der Server richtig konfiguriert ist. Aber ist hier sowieso nicht relevant, da das Passwort nicht in die Fehlermeldung geschrieben wird.

                    Kommentar


                    • #25
                      BlackScorp, dass mit dem wegloggen, stimmt, hat ich gelesen, aber dennoch bleibt es untouched. Wer will kann sich gerne durch meine php.de Analen wühlen, da sieht jeder wie ich überhaupt von Anfang bis Heute hier zu diesen Themen gekommen bin. Mehr aus Not als aus Wunsch. Und ich habe einiges erlebt in den letzten 15 Jahren, seitdem ich auch aktiv im Internet bin. Foto-Selfhosting ist eines meiner ganz großen Themen. Jeder rät zum Veröffentlichen von Fotos zu irgendeinem CMS. Mir wurde Gallery3 empfohlen. Das stellte nach genau einem Jahr den Support ein, wegen unbehebbarer Fehler im Code. Schon vorher musste ich es modden, damit es überhaupt meinen Ansprüchen gerecht wurde. Da kam dann sowas wie Login-Daten in einem Array mit Daten fürs Frontend basteln zu Tage. Irgendwann ging es nicht mehr und ich stieg auf zenPhoto um. Da crashte kürzlich die DB, indem massiv in einer DB table gelöscht wurde, und wege "on-the-fly" zudem massiv Neueinträge stattfanden, leer natürlich. Und jetzt? Geh doch zu Flickr! Dieser Spruch langweil Foto-Selfhoster, weil sie ihn einfach schon zu oft gehört haben. Anderes CMS? Nie wieder Fremd-CMS! Eure ganzen auch sehr hilfreichen Ratschläge und Tips und Hinweise hier im Forum in allen Ehren, nur scheint dass nur an mich andressiert zu sein, einem, der ein Single-CMS für sich persönlich coded. All die anderen, die da massenweise CMS für die Öffentlichkeit coden, erlangt eure Weisheit nicht. Die coden Bullshit. Sicher, der ganze Unmut erreicht dann auch nur mich, weil die anderen unnahbar sind. Ich bin nur ein kleiner Fisch mit einer handvoll Websites, manche davon reines HTML. Erfahrung bezüglich SEO und Ranking konnte ich dennoch genug sammeln. Ich fahre auf einer Website ein Wordpress. Da knickte die Besucherstatistik von einem Tag auf den anderen auf die Hälfte ein. Ich hatte keine Ursache gefunden, außer vielleicht, dass mich wer mit AdWords upgerankt hat. Einige zeit später gabs ein größeres WP Update, die kleinen laufen ja automatisch. Da entdeckte ich den Fehler. Ein Plugin machte Ärger in den Metatags des HTML Documents. Das Ranking war futsch, weil einmal Up erstmal für immer up. Da kommt man so schnell nicht wieder hoch. Wordpress, ein CMS, nicht von mir. Nie wieder Fremd-CMS! Wovon ich die wirkliche Ursache noch nicht kenne: Nachdem mit zenPhoto die Besucher-Statistik auf 0 einkickte, war auch das Ranking erstmal futsch. Doch jetzt hat sich die Besucherzahl gegenüber Gallery3 und zenPhoto Zeiten verdreifacht, von 0, innerhalb kürzester Zeit! ↗ Es ist aber weiterhin nicht mein Wunsch ein CMS zu erstellen, sondern eine Not. Meine Interessen liegen diesbezüglich woanders, nämlich darin Websites mit Content zu füllen. Denn Content macht Ranking. Coden tu ich auch gerne, so ist das nicht, aber nicht so ernsthaft für ein komplettes CMS, lieber mehr so Gimmicks. Und es ist alles nur Hobby.

                      Kommentar


                      • #26
                        wir kotzen auch jeden Tag ist halt so.

                        wir animieren auch Entwickler sich vortzubilden, Automatisierte tests für ihren code zu schreiben, sauber zu programmieren und und und.. letzendlich können wir nur ratschläge geben und hoffen dass diese auch so interpretiert werden wie wir es auch meinen und nicht komplett anders
                        apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

                        Kommentar

                        Lädt...
                        X