[PHP5] PDO - Ratlosigkeit

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

  • [PHP5] PDO - Ratlosigkeit

    Hallöchen, ich bins mal wieder...

    Ich beschäftige mich zur Zeit mit PDO und finde die ganze Angelegenheit extrem genial...

    Allerdings ergibt sich zur Zeit ein seltsamer Fehler in meinem Script. Wobei es weniger ein Fehler als vielmehr ein "nicht-tun" ist^^

    Ich baue mit dem PDO-constructor eine neue Verbindung auf, und bereite dieses Statement vor:

    PHP-Code:
    $prep_select $db->prepare("SELECT * FROM `static_pages` WHERE `id` = ':page_id'"); 
    Im weiteren Verlauf erzeuge ich damit diese Abfrage:

    PHP-Code:
    $prep_select->execute(array(':page_id' => '1'));
    $page_row $prep_select->fetch(PDO::FETCH_ASSOC); 
    Jedoch ist, wenn ich es abfrage, $page_row leer...

    Lasse ich mir die var_dump()s von $prep_select anzeigen, so erhalte ich wunderbar den query-string und... naja...

    Wieso krieg ich nichts zurück?

    PS: Die Tabelle ist natürlich gefüllt und die namen mehrmals überprüft...
    Zuletzt geändert von ApoY2k; 18.02.2008, 21:29.
    This is what happens when an unstoppable force meets an immovable object.

  • #2
    Mal statt dem Parameter eine 1 in die Query geschrieben? Und es sind für diesen Fall auch wirklich Daten in der Tabelle?
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      Mal eine der bind*-Methoden verwendet?

      Kommentar


      • #4
        Habs jetzt mal mit dem Wert gleich beim prepare reinschreiben versucht und auch mit einem ? anstatt dem age_id. Beides hat zu keinem anderen Ergebnis geführt...

        Mit bindParam etc. hats auch nix gebracht...

        PS: Ja ich bin sicher, dass der Datensatz gefüllt ist. Mit konventionellem mySQL-queries erhalte ich nämlich ein Ergebnis...
        This is what happens when an unstoppable force meets an immovable object.

        Kommentar


        • #5
          error_reporting auf E_ALL? Mal page_id direkt in die Query eingesetzt, anstatt einen Parameter zu verwenden?

          Kommentar


          • #6
            Wo finde ich denn die php.ini? Ich seh auf meinem Webserver nix

            Und Parameter auf jede erdenkliche Art und Weise ersetzen habe ich auch schon probiert.
            This is what happens when an unstoppable force meets an immovable object.

            Kommentar


            • #7
              Wo finde ich denn die php.ini? Ich seh auf meinem Webserver nix
              PHP-Code:
              error_reporting(E_ALL);
              ini_set'display_errors''On' ); 
              am Anfang deiner Datei reicht schon aus, da brauchst du nix in der ini biegen.

              Und Parameter auf jede erdenkliche Art und Weise ersetzen habe ich auch schon probiert.
              Mit welchem Ergebnis?

              Kommentar


              • #8
                Achso ok, kannte das bisher nur in der ini^^

                PHP-Code:
                $page_row $prep_select->fetch();
                var_dump($page_row); 
                liefert:
                bool(false)
                Mit dem Error-Reporting erhalte ich nur:

                Notice: Undefined offset: 3 in /static.php on line 32
                Line 32:

                PHP-Code:
                if (!$uri_contents[3]) { 
                Die Schleife wird aber betreten, hab ich schon probiert...
                This is what happens when an unstoppable force meets an immovable object.

                Kommentar


                • #9
                  Logisch wird sie betreten, es gilt ja auch
                  PHP-Code:
                   ((null == false) === true
                  Die Frage ist doch, was du da überhaupt prüfen willst. Soll der Wert FALSE sein oder soll er einfach nur ein Wert sein, den man für FALSE halte kann?

                  Kommentar


                  • #10
                    Das spielt ja nciht wirklich eine Rolle... das Problem ist ja, dass ich kein Ergebnis zurückbekomme von der PDO-Abfrage...
                    This is what happens when an unstoppable force meets an immovable object.

                    Kommentar


                    • #11
                      Funktionieren die Statements auf anderem Wege? So kommen wir jedenfalls nicht weiter!

                      Kommentar


                      • #12
                        Okay, anscheinend darf man die Parameter beim Vorbereiten nicht in Anführungszeichen setzen.

                        PHP-Code:
                        $prep_select $db->prepare("SELECT * FROM `static_pages` WHERE `id` = :page_id"
                        Hat das gewünschte Ergebnis geliefert.

                        (Vorher: `id`= 'age_id')
                        Zuletzt geändert von ApoY2k; 18.02.2008, 21:30.
                        This is what happens when an unstoppable force meets an immovable object.

                        Kommentar


                        • #13
                          Okay, anscheinend darf man die Parameter beim Vorbereiten nicht in Anführungszeichen setzen.
                          Oje, ich dachte spätestens bei ? und 3 wäre das aufgefallen ...
                          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                          Kommentar

                          Lädt...
                          X