Ergebnis 1 bis 1 von 1
  1. #1
    Meister des Grills Avatar von c4pone
    Registriert seit
    08.11.2006
    Beiträge
    167

    Standard [PHP] Tutorial: PDO Klasse benutzen

    Hi leute ich hatte mir gedacht ich schreib mal ein kleines Tut wie man die PDO Klasse in PHP verwenden kann

    Was ist PDO:
    PDO bietet eine Abstraktionsschicht für den Datenzugriff, das bedeutet, dass Sie, egal welche Datenbank Sie benutzen, dieselben Funktionen verwenden können, um Abfragen zu erstellen und Daten zu lesen. PDO bietet keine Abstraktion für Datenbanken. Es schreibt keine SQL-Abfragen um oder emuliert fehlende Features. Sie sollten eine komplette Abstraktionsschicht verwenden, wenn Sie diese Funktionalität benötigen.
    PDO wird mit PHP 5.1 ausgeliefert und ist als PECL-Erweiterung für PHP 5.0 verfügbar.

    PDO benötigt die neuen OO-Features im Kern von PHP 5 und wird deswegen nicht mit früheren Versionen von PHP funktionieren.
    Vorraussetzungen:
    min. PHP5
    PDO(ist eigentlich ab PHP5 standartmäßig dabei)
    Treiber für die zu verwendene Datenbank.

    Installation:
    Ok bevor, wir starten zeig ich euch noch schnell wie ihr die Treiber für Datenbank bekommt. Ich benutze hier den Mysql treiber

    Linux:
    Unter Linux ist es eigentlich ziemlich einfach Treiber nachzuinstallieren da die meißten treiber über apt nachinstalliert werden können
    Beispiel: sudo apt-get install php5-mysql

    Windows:
    Unter Windows hab ich bis jetzt noch nicht mit php gearbeitet aber soweit ich weiß kann man die entstprechenden Treiber bei der Installation von php5 im setup auswählen

    Alternative:
    1.Es gibt die Möglichkeit die Treiber über die PHP.ini verfügbar zu machen indem man die Treiber in die extension_dir von php kopiert und sie in der php.ini über extension=treibername.dll lädt.
    2.Man kann die Treiber auch über die dl Methode laden
    3.Man komplimiert sich PHP5 mit den entsprechenden treiber includes (hab ich selber noch nie versucht)


    Anwendung:
    OK Los gehts
    1.Connecting

    Code:
    <?php
    $db_host = '127.0.0.1';
    $db_name = 'test_db';
    $username = 'c4pone';
    $password = 'awesome';
    $conString = 'mysql:host='.$db_host.';dbname='.$db_name;
    try
    {
       $pdo = new PDO($conString,$username,$password);
    }catch(PDOException ex)
    {
        //Fehlerbehandlung
    }
    
    ?>
    OK von oben nach unten,
    als erstes definiere ich ein paar variablen host,dbname,username,password. (sollte eigentlich verständlich sein).
    Dann kommt was neues der connection string. Der Connection String wird benötigt um PDO zu sagen wie,wo und mit was er sich verbinden soll.
    Ich benutze in diesem Beispiel Mysql. Viel gibt es zu dem String nicht zu sagen da er eigentlich selbsterklärend ist.
    Als nechstes erzeuge ich eine Instanz der PDO Klasse und übergebe dem Konstruktur als erstes den con string gefolgt von Username und Password.
    Wenn ein Fehler beim verbinden auftaucht wird eine PDOException geworfen !!

    2.Einfache Queries
    Code:
    <?php
    $name = "test";
    $users = $pdo->query('SELECT * FROM users name='.$name);
    ?>
    Pdo bietet die möglichkeit über die methode query abfragen zu erstellen wie man es gewohnt ist. Zurück bekommt man bei default nen Array.

    3.Prepared Statements
    So jetzt kommen wir zu den lustigen Dingen.

    Als erstes mal ein einfach SELECT

    Alle User mit dem Namen c4pone von der Tabelle users
    Code:
    $username = "c4pone";
    $stmt = $pdo->prepare("SELECT * FROM users WHERE name = :suchmich");
    $stmt -> bindParam(':suchmich', $username);
    $stmt->execute()
    $users = $stmt->fetchAll();
    Wieder von oben nach unten
    $username enthält den name nach dem wir suchen möchten.
    Jetzt erzeugen wir mit der prepare methode ein Statement und speichern das in der variable $stmt.
    Wie ihr seht ist es eine normale SQl Abfrage bis auf das name = :suchmich.
    Denn :suchmich ist ein Platzhalter der für eine Variable steht.
    Diese Variable muss ich natürlich meinem Statement bekannt machen. Dies tue ich über die bindParam() Methode.
    Der erste Parameter der Methode ist der Platzhalter den ich eine Variable zuweisen möchte(in meinem fall :suchmich).
    Der zweite Parameter ist die Variable die ich anfügen möchte _> $username .
    Natürlich kann man auch mehr als einen Platzhalter benutzen.(SELECT * FROM users WHERE name = :user and password = :pw)
    Zuguter letzt kommt noch ein execute was im Fehlerfall -1 zurück gibt und ein fetchAll was uns einen Array mit Daten liefert.

    4.Verbindung beenden
    Code:
    //$pdo == pdo objekt
    $pdo = null;//verbindung beendet
    nc


    Natürlich war das nicht alles was PDO zubieten hat(Stichwort: Transactionen) , jedoch wollte ich euch nur einen kleinen Einblick verschaffen
    Wer interesse auf mehr bekommen hat kann hier noch ne ganze Menge mehr finden PHP: PDO - Manual

    Kritik erwünscht
    gruß c4pone
    Zitat Zitat von Barney Stinson
    “Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro—I'm Broda!”

  2. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    blackberry (19.08.2010), Macacity (19.08.2010), Shini (19.08.2010), sn0w (19.08.2010)

Ähnliche Themen

  1. [C#] AB Klasse
    Von SFX im Forum .NET Sprachen - Techniken
    Antworten: 2
    Letzter Beitrag: 04.07.2010, 10:10
  2. [Tutorial] Benutzen eigener Smiley's
    Von inyourface im Forum Instant Messaging
    Antworten: 2
    Letzter Beitrag: 16.12.2008, 20:11
  3. Antworten: 1
    Letzter Beitrag: 09.11.2007, 16:38
  4. suche Email klasse lib etc
    Von ichich im Forum C, C++
    Antworten: 1
    Letzter Beitrag: 12.06.2007, 17:25
  5. [S] stacheldraht benutzen tutorial
    Von echoslider im Forum Biete Tutorials
    Antworten: 3
    Letzter Beitrag: 03.02.2007, 12:56

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •