Hallo,
ich studiere technische Informatik und muss nun für das Wahlpflichtfach Webdesign eine Datenbankschnittstelle mit PHP entwickeln. Allerdings habe ich diese Woche das erste Mal seit 3, 4 Jahren wieder was mit PHP programmiert und bin somit wohl wieder ein Anfänger.
Die Datenbankschnittstelle soll in einem Webprojekt verwendet werden und auf MySQL basieren. Diese Datenbankschnittstelle soll gegen eine andere getauscht werden können (beispielsweise eine die MS SQL Server unterstütz) ohne am Quellcode etwas verändern zu müssen.
Diese Datenbankschnittstelle soll darüber hinaus Objektorientiert sein, soll eine vernünftige Fehlerbehandlung enthalten und soll so "gut" wie möglich programmiert werden, denn schließlich wird diese ja auch von meinem Professor bewertet. Den folgenden Code habe ich bisher mal entwickelt:
/*************** abstrakte Datenbank Schnittstelle ***************/
<?php
abstract class DatabaseConnection
{
# Protected Variablen
protected $connection = NULL;
protected $host = NULL;
protected $database = NULL;
protected $user = NULL;
protected $password = NULL;
# Abstrakte Funktionen, Definitionen
public abstract function Connect($host, $user, $password);
public abstract function Disconnect();
...
}
?>
/*************** MySQL Datenbank Schnittstelle ***************/
<?php
require_once('DatabaseConnection.php');
require_once('ExtendedException.php');
class MySQLDatabaseConnection extends DatabaseConnection
{
# Public Interface
public function Connect($host, $user, $password)
{
$this->host = $host;
$this->user = $user;
$this->password = $password;
$this->connection = @mysql_connect($host, $user, $password, true);
if ($this->connection == false)
{
$exception = new DatabaseConnectionException($host, $user, $password);
throw $exception;
}
}
}
?>
/*************** User definded exceptions ***************/
<?php
class DatabaseConnectionException extends ExtendedException
{
public function __construct($host, $user, $password)
{
if (!$this->showPassword) $password = "*****";
$this->message = "Fehler beim Herstellen der Datenbankverbindung" . ZEILENUMBRUCH .
"Host: " . $host . $this->ZEILENUMBRUCH .
"User: " . $user . ZEILENUMBRUCH .
"Password: " . $password;
}
}
?>
Vielen Dank für Eure Hilfe