Ankündigung

Einklappen
Keine Ankündigung bisher.

PDO und Prepared Statements

Einklappen

Neue Werbung 2019

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

  • PDO und Prepared Statements

    Hi, ich weiß nicht ob ich hier in dem richtigen Thread bin, oder ob das noch zu Einsteiger gehört, falls ich falsch bin, bitte verschieben.

    Ich habe eine Frage zu Perpared Statements, besser warum der Sytax so ist wie er ist, ich möchte das halt nicht nur copy paste sondern auch verstehen.


    Zwei Code Beispiele aus dem php-einfach.de Tutorial:
    PHP-Code:
    $pdo = new PDO('mysql:host=localhost;dbname=test''username''password');

    $statement $pdo->prepare("SELECT COUNT(*) AS anzahl FROM users");
    $statement->execute();
    $row $statement->fetch();
    echo 
    "Es wurden ".$row['anzahl']." User gefunden"
    PHP-Code:
    $pdo = new PDO('mysql:host=localhost;dbname=test''username''password');

    $statement $pdo->prepare("SELECT zeitpunkt FROM tabelle");
    $statement->execute(array());
    while(
    $row $statement->fetch()) {
    echo 
    date('d.m.y H:i:s'strtotime($row['zeitpunkt']))."<br />";

    Ich störe mich hier bei dem Aufruf der Methode execute. Wenn ich mit einem Datum arbeite muss ich nochmal ein Array als Parameter übergebe (Beispiel zwei), bei count (Beispiel eins) nicht. Da habe ich mich schon gewundert, immerhin gebe ich ja per echo ein Array aus.
    Kurz: Ich checke den Hintergrund nicht, warum das so ist, wie es ist xD

    Vielen Dank vorab.



  • #2
    Musst du nicht, nur wenn du auch Parameter in der Query hast musst du auch ein Array im Exceute übergeben.
    Ich sehe das Beispiel so auch nicht auf php-einfach
    Eine Mannschaft aus Granit! So wie einst Real Madrid!
    Und so zogen wir in die Bundesliga ein und wir werden wieder Deutscher Meister sein!

    Kommentar


    • #3
      Hi,
      vielen Dank für die Information.
      hier der Link zu dem Veispiel mit dem Datum.
      https://www.php-einfach.de/mysql-tut...atum-und-zeit/

      Kommentar


      • #4
        Bei der Seite ist ja nicht das prepared statement das Hauptthema, daher gehe ich davon aus das der Autor hier einfach aus einer Vorlage kopiert hat um es sich einfacher zu machen.

        Korrekt wäre, mit query zu arbeiten:
        PHP-Code:

        $pdo 
        = new PDO('mysql:host=localhost;dbname=test''username''password');

        $sql ="SELECT zeitpunkt FROM tabelle";

        foreach( 
        $pdo->query($sql,PDO::FETCH_ASSOC ) as $row) {
            echo 
        date('d.m.y H:i:s'strtotime($row['zeitpunkt']))."<br />";

        Query deshalb, weil keine Parameter in der SQL Abfrage vorkommen.
        Siehe https://www.php.net/manual/en/pdo.query.php

        Kommentar


        • #5
          protestix
          $pdo->query oder?
          Eine Mannschaft aus Granit! So wie einst Real Madrid!
          Und so zogen wir in die Bundesliga ein und wir werden wieder Deutscher Meister sein!

          Kommentar

          Lädt...
          X