Mir geht es jetzt nicht um die Darstellung der Klassen bzw um dem Funktionsumfang.
Sondern NUR um das Prinzip, das man die Verbindung zur Datenbank
nicht immer selber herstellen muß.
Wenn man einen query senden möchte,
und keine Verbindung besteht,
dann würd erst eine Verbindung hergestellt, bevor er gesendet würd.
Beispiel:
Und die klassen:
Verbesserungsvorschläge oder Meinungen sind willkommen.
Danke.
Sondern NUR um das Prinzip, das man die Verbindung zur Datenbank
nicht immer selber herstellen muß.
Wenn man einen query senden möchte,
und keine Verbindung besteht,
dann würd erst eine Verbindung hergestellt, bevor er gesendet würd.
Beispiel:
PHP-Code:
$objekt_query = new query("select * from tabelle where id = '1';");
$array = $objekt_query->fetch();
echo $array['beispiel'];
PHP-Code:
// Servername
define('MYSQL_SERVER', 'localhost');
// Benutzer
define('MYSQL_USER', 'ich');
// Passwort
define('MYSQL_PASS', 'nur_ich');
class _verbindung
{
var $fehlermeldung = true; // Sollen Fehlermeldungen angezeigt werden? ( true | false )
var $_resource = false; // Verbindungskennung bei Verbindung oder false;
function verbindung()
{
if ( ! $this->resource = @mysql_connect(MYSQL_SERVER, MYSQL_USER, MYSQL_PASS) )
die( $this->fehlermeldung ? "<b>ERROR:</b> ".mysql_error() : "DB Verbindung konnte nicht hergestellt werden." );
}
function db_close()
{
if ($this->resource)
@mysql_close($this->resource);
}
}
class query extends _verbindung
{
/**
* true = Fehlermeldungen anzeigen
* false = Eigene Fehlermeldung ausgeben
* @access global
* @var bool
*/
var $fehlermeldung = true;
/**
* @access global
* @var string
*/
var $database = "Datenbankname";
/**
* @access privat
* @var string
*/
var $_sql = "";
/**
* @access privat
* @var resource | bool ( SELECT, EXPLAIN, SHOW, DESCRIBE | true,false )
*/
var $_result = "";
/**
* @access privat
* @var string Fehlertext
*/
var $_error = "";
/**
* @access privat
* @var int Fehlernummer
*/
var $_errno = 0;
/**
* @param string Query
* @param string Datenbank (optional)
*/
function query($sql, $database = "")
{
// query in class speichern
$this->_sql = $sql;
// Wenn keine Verbindungskennung, dann Verbindung aufbauen
if ( ! $this->_resource )
$this->verbindung();
// Datenbank auswaehlen
$this->_select_db( $database != "" ? $database : $this->database );
// Query senden
if ( ! $this->_result = mysql_query($this->_sql))
{
// Wenn Query nicht erfolgreich war, denn entsprechenden Fehlertext speichern.
$this->_error = mysql_error();
$this->_errno = mysql_errno();
die( $this->fehlermeldung ? "<b>ERROR:</b> ".mysql_error() : "DB Query konnte nicht gesendet werden." );
}
}
/**
* @access privat
* @var string
*/
function _select_db($db)
{
if ( ! mysql_select_db($db) )
die( $this->fehlermeldung ? "<b>ERROR:</b> ".mysql_error() : "DB konnte nicht ausgewählt werden." );
}
/**
* @access privat
*/
function _error()
{
return !(bool)$this->_result;
}
/**
* @access global
* @return array
*/
function fetch()
{
return $this->_error() ? null : mysql_fetch_array($this->_result);
}
}
Danke.
Kommentar