[PHP5] PDO - Ratlosigkeit

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [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...
    Last edited by ApoY2k; 18-02-2008, 20: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]

    Comment


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

      Comment


      • #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.

        Comment


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

          Comment


          • #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.

            Comment


            • #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?

              Comment


              • #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.

                Comment


                • #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?

                  Comment


                  • #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.

                    Comment


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

                      Comment


                      • #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')
                        Last edited by ApoY2k; 18-02-2008, 20:30.
                        This is what happens when an unstoppable force meets an immovable object.

                        Comment


                        • #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]

                          Comment

                          Working...
                          X