Deutsch English

PHP & MySQL Klasse Tutorial

Dieser Blog befasst sich mit einer PHP MySQL Klasse, welche die wichtigsten PHP-Methoden zur einfachen und schnellen Manipulation von MySQL-Daten enthält. Ich möchte ein blog table erstellen, um die einzelnen Methoden dieser Klasse zu verdeutlichen.

 

Übersicht aller Methoden dieser Klasse:

  • __construct() ist der Konstruktor der Klasse und stellt eine Verbindung mit der MySQL-Datenbank her.
  • createTable($table, $fields, $key) erstellt eine MySQL-Tabelle
  • res($query)  schickt SQL-Query an die MySQL-Server
  • num($res) liefert die Anzahl der gefunden Datensätze einer query
  • row($res) liefert die gefundenen Datensätze einer query als assoziatives array
  • insert($table, $data) fügt neue Daten in eine MySQL-Tabelle ein
  • update($table, $data, $where) aktualisiert bestimmte Daten einer MySQL-Tabelle
  • delete($table, $where) löscht bestimmte Daten einer MySQL-Tabelle
  • setWhere($where) bildet aus array eine string-where-syntax
  • realScapeString($fields) prüft, ob die Daten in einer sicheren Syntax sind, bevor diese in der Datenbank gespeichert werden.

Nachdem wir einen kurzen Blick auf alle oben genannten Methoden geworfen haben, können wir nun mit unsere Beispiel blog table beginnen.

 

Zuerst downloaden wir die Datei MySQL.php und speichern sie in einem Verzeichnis auf einem Webserver, der PHP und MySQL unterstützt. Anschließend öffnen wir die Datei MySQL.php mit einem Texteditor oder Entwicklertool und fügen die MySQL-Zugangsdaten ein:

private $DBHOST = 'localhost'; // Database host

private $DBUSR = 'root'; // Database user

private $DBPWD = ''; // Database password

private $DBName = 'db'; // Database name

 

Danach erstellen wir eine Datei index.php im selben Verzeichnis, in dem sich die Datei MySQL.php befindet. Wir öffnen nun die Datei index.php in einem Texteditor und includen die Datei MySQL.php in index.php. Wir erzeugen nun in index.php ein MySQL-Objekt ($db) speichern die Datei.

 

 

<?php
    require 'MySQL.php';
    $db = new MySQL();
?>

Um herauszufinden, ob die Klasse MySQL in index.php korrekt inkludiert ist und ob die Verbindung mit der Datenbank hergestellt ist, rufen wir die Datei index.php in einem Browser z.B. http://localhost/myproject/index.php auf.
index.php sollte keine Fehlermeldung (wie z.B. „Can’t connect to mySQL server“ oder „Can’t select MySQL database“) ausgeben. Wenn dies der Fall ist, können wir unserem Tutorial fortfahren.

 

Eine MySQL-Tabelle mit createTable erstellen:
Mit der Methode createTable ($tableName, $fields, $primaryKey) kann eine MySQL-Tabelle erstellt werden.
$tableName ist der Tabellenname. In unserem Fall heißt unsere Tabelle “Blog”
$fields ist ein array und enthält die Feldernamen und SQL-Types.
$primaryKey definiert den PRIMARY KEY der Tabelle “Blog”.

Wir bilden nun in index.php ein array, das alle Felder der Blog-Tabelle enthält und rufen anschließend die Methode $db->createTable ('Blog', $fields, 'ID') auf. Die Datei index.php sieht nun so aus:

 

<?php
require 'MySQL.php';
    $db = new MySQL();
    $fields = array(
        'ID' => 'int(11) NOT NULL AUTO_INCREMENT',
        'Title' => 'varchar(100) NOT NULL',
        'shortDescription' => 'mediumtext NOT NULL',
        'Content' => 'text NOT NULL',
        'Created' => 'datetime NOT NULL');
    $db->createTable('Blog', $fields, 'ID');
?>

Wir speichern die Datei index.php und rufen sie in einem Browser http://localhost/myproject/index.php auf.
Danach loggen wir uns in PHPMyAdmin ein und überprüfen, ob die Tabelle “Blog” erstellt wurde.

 

Tabelle um neue Feldern erweitern
Mit alterTable($tableName, $fields) lässt sich eine Tabelle um neue Felder erweitern.
$tableName ist der Tabellenname. In unserem Fall heißt unsere Tabelle “Blog”
$fields ist ein array und enthält die neuen Feldernamen und SQL-Types.

 

<?php
require 'MySQL.php';
    $db = new MySQL();
    $fields = array(
    'newField1' => 'varchar(100)',
    'newField2' => 'varchar(100)');
$tableName = 'Blog';
$db->alterTable($tableName, $fields);
?>

Daten in die Blog-Tabelle einfügen
Mit Hilfe der Mwthode insert ($tableName, $data) können wir Einträge in die Blog-Tabelle hinzufügen.
Weiters liefert die Funktion insert die zuletzt hinzugefügte ID zurück.
$tableName ist der Tabellenname.
$data ist ein array und definiert die Felder, die wir in die Blog-Tabelle hinzufügen möchten und dazugehörige Felder-values.

<?php
require 'MySQL.php';
    $db = new MySQL();
    $data = array(
        'Title' => 'Hello World',
        'shortDescription' => 'This is a short description of my first Blog',
        'Content' => 'This is content of my first Blog',
        'Created' => date('Y-m-d H:i:s')
    );
    $lastID = $db->insert('Blog', $data);
?>

Daten der Blog-Table updaten
Mit der Methode update ($table, $date, $where) können wir bestimmte Daten einer Tabelle updaten.
$tableName ist der Tabellename.
$data ist ein array und definiert die Felder, die wir in der Blog-Tabelle updaten möchten.
$where ist ein array und definiert identifier und identifier-value. Wir können $where auch an die Funktion update als string (z.b. $where = 'ID = 1') geben.

<?php
require 'MySQL.php';
    $db = new MySQL();
    $tableName = 'Blog';
    $data = array(
        'Title' => 'Updated blog Title',
        'shortDescription' => 'Updated blog short description ',
        'Content' => 'Updated blog content');
    $where = array('ID' => 2);
    $db->update($tableName, $data, $where);
?>

Daten aus der Blog-Tabelle löschen.
Mit delete($tableName, $where) können wir eine bestimmte Zeile aus der Blog-Tabelle löschen.

<?php
require 'MySQL.php';
    $db = new MySQL();
    $where = array('ID' => 2);
    $tableName = 'Blog';
    $db->delete($tableName, $where);
?>

Daten aus der Blog-Tablle herauslesen
Um Daten aus der Blog-Tabelle herauslesen zu können, wenden wir in index.php folgende Methoden an: 

<?php
require 'MySQL.php';
    $db = new MySQL();
    $query = 'select*from Blog order by Created ASC';
    $res = $db->res($query);
    $num = $db->num($res);

    if ($num >= 1) {
        echo '<h1>' . $num . ' Einträge</h1>';
        echo '<ul>';
        while ($row = $db->row($res)) {
            echo '<li>' . $row['Title'] . '</li>';
        }
        echo '</ul>';
    } else {
        echo '<h1>Es wurden keine Einträge gefunden</h1>';
    }
?>

 Mit truncateTable($tableName) lässt sich eine Tabelle leeren. Schließlich können wir mit der Funktion dropTable($tableName) eine Tabelle aus der Datenbank löschen.

Dieses Tutorial ist nun beendet.  Sollte es Unklarheiten geben, hiterlasst mir bitte einen Kommentar!