Hallo,
ich möchte meine Datenbankerweiterung RioDB zur Verfügung stellen. Die Datenbankerweiterung basiert auf PDO und mag für den ein oder anderer leichter zu bedienen sein.
Das System ist kombrimiert im Datei-Anhang.
Für Anregungen/Kritik/Lobe bin ich offen
Beispiele:
PHP
<?php
require_once 'DB/RioDB.class.php';
$RioDB = new \RioDB\RioDB;
/*
* Datenbank erstellen
*/
try {
$RioDB->CreateDatabase('riodb');
} catch(\PDOException $e) {
$RioDB->ErrorHandle($e->getCode(), $e->getFile(), $e->getLine(), $e->getMessage(), $e->getTraceAsString());
}
/*
* Alle Datenbanken auflisten
*/
try {
$r = $RioDB->AllDatabases();
foreach ($r as $row) {
echo $row['Database'].'<br />';
}
} catch(\PDOException $e) {
$RioDB->ErrorHandle($e->getCode(), $e->getFile(), $e->getLine(), $e->getMessage(), $e->getTraceAsString());
}
/*
* Alle Tabellen der Datenbank auflisten
*/
try {
$r = $RioDB->AllTables();
foreach ($r as $row) {
echo $row['Tables_in_riodb'].'<br />'; //Weil die riodb Datenbank ausgewählt ist
}
} catch(\PDOException $e) {
$RioDB->ErrorHandle($e->getCode(), $e->getFile(), $e->getLine(), $e->getMessage(), $e->getTraceAsString());
}
/*
* Tabelle lerren
*/
try {
$RioDB->ClearTable('fruits');
} catch(\PDOException $e) {
$RioDB->ErrorHandle($e->getCode(), $e->getFile(), $e->getLine(), $e->getMessage(), $e->getTraceAsString());
}
/*
* Datenbank löschen
*/
try {
$RioDB->DeleteDatabase('riodb');
} catch(\PDOException $e) {
$RioDB->ErrorHandle($e->getCode(), $e->getFile(), $e->getLine(), $e->getMessage(), $e->getTraceAsString());
}
/*
* Normale SQL Anweisung mit Exec
*/
try {
$count = $RioDB->Exec("DELETE FROM `fruits` WHERE `colour`=red");
echo $count.' rote Früchte wurden gelöscht';
} catch(\PDOException $e) {
$RioDB->ErrorHandle($e->getCode(), $e->getFile(), $e->getLine(), $e->getMessage(), $e->getTraceAsString());
}
/*
* 10 neue Früchte hinzufügen
*/
for($i=1;$i<10;$i++) {
$RioDB->Transaction();
$randomcolour = array_rand(array('blue', 'red', 'green', 'yellow', 'pink'));
try {
$RioDB->Query("INSERT INTO `fruits` (`colour`) VALUES (:color)");
$RioDB->Bind(':color', $randomcolour);
$RioDB->Execute();
echo 'Mein Eintrag hat die ID '.$RioDB->LastInsertID().'<br />';
} catch(\PDOException $e) {
$RioDB->ErrorHandle($e->getCode(), $e->getFile(), $e->getLine(), $e->getMessage(), $e->getTraceAsString());
}
$RioDB->Commit();
}
/*
* Alle Früchte auslesen
*/
try {
$RioDB->Query("SELECT * FROM `fruits`");
$RioDB->Execute();
$fetch = $RioDB->FetchAll();
$count = $RioDB->Count();
} catch(\PDOException $e) {
$RioDB->ErrorHandle($e->getCode(), $e->getFile(), $e->getLine(), $e->getMessage(), $e->getTraceAsString());
}
if($count == 0) {
echo 'Keine Früchte vorhanden';
} else {
for($i=0;$i<$count;$i++) {
echo 'ID: '.$fetch[$i]['id'].' | Farbe: '.$fetch[$i]['colour'].' | Fruit: '.$fetch[$i]['name'].'<br />';
}
}
/*
* Bestimmte Frucht auslesen
*/
try {
$RioDB->Query("SELECT * FROM `fruits` WHERE `name`:name");
$RioDB->Bind(':name', 'red');
$RioDB->Execute();
if($RioDB->Count()==0) {
echo 'Keine Rote Frucht gefunden';
} else {
echo 'Ich habe die Farbe '.$RioDB->Fetch()->colour;
}
} catch(\PDOException $e) {
$RioDB->ErrorHandle($e->getCode(), $e->getFile(), $e->getLine(), $e->getMessage(), $e->getTraceAsString());
}
?>
Alles anzeigen
Viel Spaß damit
Liebe Grüße
palwal