Skip to content
  • Kategorien
  • World
  • Aktuell
  • Tags
  • Beliebt
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
linux-nerds.org

linux-nerds.org

  1. Übersicht
  2. Linux
  3. PHP Data Objects

PHP Data Objects

Geplant Angeheftet Gesperrt Verschoben Linux
pdophp
4 Beiträge 1 Kommentatoren 358 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • FrankMF Offline
    FrankMF Offline
    FrankM
    schrieb am zuletzt editiert von FrankM
    #1

    Ich habe mir letzten Winter PHP beigebracht, noch nicht auf Profilevel aber für einfache Webseiten reicht es schon 😉
    Damals habe ich mich bei der Datenbankabfrage für PHP Data Objects, in Kurzform PDO, entschieden. Warum? Daran kann ich mich nicht mehr 100% erinnern, aber ich denke ich fand den Ansatz gut eine Datenbankabfrage zu schreiben, wo es egal ist welche Datenbank im Hintergrund wirkt. Es wird dann noch der richtige Treiber für die Datenbank benötigt.

    PHP Data Objects oder kurz PDO stellt eine Abstraktionsebene für den Datenbankzugriff dar und ermöglicht einen einheitlichen Zugang von PHP auf unterschiedliche SQL-basierte Datenbanken, wie zum Beispiel MySQL, PostgreSQL oder SQLite.
    Quelle: https://de.wikipedia.org/wiki/PHP_Data_Objects

    Das PHP Handbuch zu PDO findet man hier.

    Wie Ihr wisst, benutze ich dieses Forum hauptsächlich als Notizbuch. Aber wie immer, sollte jemand fachliche Fehler finden, ich freue mich über jeden Hinweis und Tipp.

    Datenbank Aufruf

    Die Datenbank muss man aufrufen, damit man mit ihr arbeiten kann. Das macht man z.B. so. Das File soll hier den Namen db_connect.php haben.

    <?php
    try {
    $pdo = new PDO('mysql:host=localhost;dbname=DBNAME', 'Benutzer', 'Passwort');
    // set the PDO error mode to exception
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
    }
    catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
    ?>
    

    Dieser DB-Aufruf kommt in ein File außerhalb des Webseiten Ordners! Innerhalb des Projektes gibt es dann ein File, was folgendes enthält. Name db_connect.inc.php

    <?php
    //DB Connect
    require_once
    dirname($_SERVER['DOCUMENT_ROOT'])
    . DIRECTORY_SEPARATOR
    . '../ORDNER'
    . DIRECTORY_SEPARATOR
    . 'db_connect.php';
    ?>
    

    Innerhalb der einzelnen PHP-Files ruft man dann die Datenbank wie folgt auf.

    //DB Connect
    require __DIR__ . '/inc/db_connect.inc.php';
    

    Damit wäre der DB Aufruf ausreichend sicher. Nun kann man mit der DB arbeiten.

    Datenbank schließen

    So schließt man die Datenbankverbindung wieder

    $pdo = null;
    

    Beispiel um Daten aus der Datenbank abzurufen

    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $statement = $pdo->prepare("SELECT * FROM tabelle WHERE datum = :date ");
    $statement->execute(array('date' => $date));
    

    Wir wollen aus einer Tabelle Daten anzeigen. Auswahlkriterium soll das Datum sein, welches in $date abgelegt ist. Nun füllen wir eine Tabelle mit den Daten.

    $zahl = 1;
    <?php
    while($row = $statement->fetch()) 
    { 
       echo '<tr>
                <td>'.$zahl.'</td>
                <td>'.$row[datum].'</td>
                <td>'.$row[time].'</td>
            </tr>';
       $zahl = $zahl + 1;
    }
    ?>
    

    Wird fortgesetzt!

    Im Fediverse -> @FrankM@nrw.social

    1. NanoPi R5S
    2. Quartz64 Model B, 4GB RAM
    3. Quartz64 Model A, 4GB RAM
    4. RockPro64 v2.1
    1 Antwort Letzte Antwort
    0
    • FrankMF Offline
      FrankMF Offline
      FrankM
      schrieb am zuletzt editiert von FrankM
      #2

      DB Eintrag speichern

      Nehmen wir an, wir möchten einen Datensatz in die DB schreiben.

      $statement = $pdo->prepare("INSERT INTO feinstaub(datum, time, sds_p1, sds_p2, temp, humidity) VALUES (?, ?, ?, ?, ?, ?)");
      $statement->execute(array(htmlspecialchars($datum),
      			  htmlspecialchars($time),
      			  htmlspecialchars($values["SDS_P1"]),
      			  htmlspecialchars($values["SDS_P2"]),
      			  htmlspecialchars($values["temperature"]),
      			  htmlspecialchars($values["humidity"])));
      

      Im Beispiel werden 6 Werte in die Datenbank feinstaub gechrieben.

      Im Fediverse -> @FrankM@nrw.social

      1. NanoPi R5S
      2. Quartz64 Model B, 4GB RAM
      3. Quartz64 Model A, 4GB RAM
      4. RockPro64 v2.1
      1 Antwort Letzte Antwort
      0
      • FrankMF Offline
        FrankMF Offline
        FrankM
        schrieb am zuletzt editiert von
        #3

        Die ID des letzten geschriebenen Eintrages ermitteln

        $lastinsert_id = $pdo->lastInsertId();
        

        Im Fediverse -> @FrankM@nrw.social

        1. NanoPi R5S
        2. Quartz64 Model B, 4GB RAM
        3. Quartz64 Model A, 4GB RAM
        4. RockPro64 v2.1
        1 Antwort Letzte Antwort
        0
        • FrankMF Offline
          FrankMF Offline
          FrankM
          schrieb am zuletzt editiert von FrankM
          #4

          Datensatz löschen

          Voraussetzung ist, das man die ID des zu löschenden Eintrages kennt.

          $statement = $pdo->prepare("DELETE FROM feinstaub WHERE id = ?");
          $statement->execute(array($id));
          if ($statement->execute()) {
            echo "Der DB-Eintrag wurde erfolgreich gelöscht!";
          }
          else {
            echo "Bitte den Administrator informieren!";
          }
          

          Im Fediverse -> @FrankM@nrw.social

          1. NanoPi R5S
          2. Quartz64 Model B, 4GB RAM
          3. Quartz64 Model A, 4GB RAM
          4. RockPro64 v2.1
          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          • FrankMF

            Debian - php8.2 security update

            Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben Linux debian linux php
            1
            0 Stimmen
            1 Beiträge
            110 Aufrufe
            Niemand hat geantwortet
          • FrankMF

            php8.2 secutity update

            Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php linux
            1
            0 Stimmen
            1 Beiträge
            163 Aufrufe
            Niemand hat geantwortet
          • FrankMF

            PHP - ChatGPT

            Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php linux chatgpt
            1
            2
            0 Stimmen
            1 Beiträge
            152 Aufrufe
            Niemand hat geantwortet
          • FrankMF

            PHP Webseite lokal einhängen mit sshfs

            Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php linux
            1
            2
            0 Stimmen
            1 Beiträge
            83 Aufrufe
            Niemand hat geantwortet
          • FrankMF

            Eingabefeld aktivieren

            Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php
            1
            2
            0 Stimmen
            1 Beiträge
            234 Aufrufe
            Niemand hat geantwortet
          • FrankMF

            Geo Loacation

            Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php
            1
            0 Stimmen
            1 Beiträge
            338 Aufrufe
            Niemand hat geantwortet
          • FrankMF

            PHPMailer

            Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php
            1
            0 Stimmen
            1 Beiträge
            492 Aufrufe
            Niemand hat geantwortet
          • FrankMF

            Reload einer PHP Seite verhindern

            Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php
            1
            0 Stimmen
            1 Beiträge
            815 Aufrufe
            Niemand hat geantwortet
          Powered by NodeBB | Contributors
          © 2022 frank-mankel.de
          Fediverse
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Kategorien
          • World
          • Aktuell
          • Tags
          • Beliebt