EGOCMS  18.0
EGOTEC Content-Managament-System
Ego_Sql_Abstract Klassenreferenz
+ Klassendiagramm für Ego_Sql_Abstract:
+ Zusammengehörigkeiten von Ego_Sql_Abstract:

Öffentliche Methoden

 connect ($database='', $host='', $user='', $password='')
 
 __construct ($query=array(), $cache=false)
 
 __toString ()
 
 query ($query, $appendCurrent=false)
 
 nextRecord ()
 
 numRecords ()
 
 select ($query, $cache=false)
 
 delete ($query)
 
 update ($query)
 
 insert ($query)
 
 replace ($query)
 
 showColumns ($table)
 
 current ()
 
 next ()
 
 key ()
 
 valid ()
 
 rewind ()
 
 numRows ()
 
 export ($table)
 
 import ($table, $content, $primary=array(), $c_date_fieldname='', $c_date_value='')
 
 createTable ($table, $struct, $drop_flag=true)
 
 alterTable ($table, $struct)
 
 dropTable ($table)
 
 begin ()
 
 commit ()
 
 rollback ()
 
 repair ($table)
 
 getQueryInfo ()
 
 tableExists ($table)
 
 optimize ($table)
 
 getPrimary ($table)
 
 getTables ($like='')
 
 getVersion ()
 

Datenfelder

 $currentQuery
 
 $currentBind
 
 $Record
 

Geschützte Methoden

 _nextRecord ()
 
 _rewind ()
 
 _numRecords ()
 
 _selectString ($query)
 
 _select ($query)
 
 _cacheInit ($query, $cache)
 
 onError ($action)
 

Geschützte Attribute

 $escapeChar = "`"
 
 $_db
 
 $_currentRow
 
 $_cached = false
 
 $_transaction = false
 

Ausführliche Beschreibung

Bildet eine Abstraktionsschicht zu verschiedenen SQL Datenbanken.

Autor
heiko

Definiert in Zeile 23 der Datei Ego_Sql_Abstract.php.

Beschreibung der Konstruktoren und Destruktoren

◆ __construct()

__construct (   $query = array(),
  $cache = false 
)

Die Datenbankverbindung herstellen.

Als optionaler Parameter kann gleich eine Datenbankabfrage in Form eines selects mitgegeben werden.

Als zweiter Parameter kann ein Pfad auf eine Datei angegeben werden, in die das Ergebnis der Abfrage gespeichert wird.

// Beispiel:
$db = new Ego_Sql(array(
'fields' => 'id,name',
'from' => 'demo_de',
'where' => 'name=:name',
'bind' => array(
'name' => 'Homepage'
)
));
$db->nextRecord();
echo "Die ID der Seite 'Homepage' ist: " . $db->Record['id'] . "\n";
Parameter
array$queryeine Datenbankabfrage
Ego_Cache$cacheAbfragecache.

Definiert in Zeile 98 der Datei Ego_Sql_Abstract.php.

Dokumentation der Elementfunktionen

◆ __toString()

__toString ( )

Definiert in Zeile 121 der Datei Ego_Sql_Abstract.php.

◆ _cacheInit()

_cacheInit (   $query,
  $cache 
)
protected

Die Abfrageergebnisse aus dem Cache lesen.

Parameter
array$queryeine Datenbankabfrage
Ego_Cache$cacheAbfragecache.
Rückgabe
bool

Definiert in Zeile 747 der Datei Ego_Sql_Abstract.php.

◆ _nextRecord()

_nextRecord ( )
protected

Die nächste Ergebniszeile direkt von der Datenbank holen.

Rückgabe
$this->Record or null

Definiert in Zeile 164 der Datei Ego_Sql_Abstract.php.

◆ _numRecords()

_numRecords ( )
protected

Anzahl der Ergebniszeilen.

Rückgabe
integer Anzahl der Zeilen der letzten Datenbankabfrage. Falls noch keine Abfrage durchgeführt wurde, wird 0 zurückgegeben.

Definiert in Zeile 232 der Datei Ego_Sql_Abstract.php.

◆ _rewind()

_rewind ( )
protected

Datenbankabfrage zurücksetzen.

Definiert in Zeile 177 der Datei Ego_Sql_Abstract.php.

◆ _select()

_select (   $query)
protected

Ein SQL select Statement direkt an die Datenbank absetzen.

Siehe auch
select
Parameter
$queryArray Ein assoziatives Feld, das die Selektion beschreibt.
Rückgabe
Integer Zeiger auf die Abfrage

Definiert in Zeile 293 der Datei Ego_Sql_Abstract.php.

◆ _selectString()

_selectString (   $query)
protected

Definiert in Zeile 260 der Datei Ego_Sql_Abstract.php.

◆ alterTable()

alterTable (   $table,
  $struct 
)
abstract

Tabelle ändern.

// Beispiel:
$db = new_db_connection();
$db->alterTable(
'testtable', array(
'tid' => 'bigint auto_increment',
'page_id' => 'bigint',
'test_name' => 'varchar(200)',
'PRIMARY tid' => 'tid',
'KEY page_id' => 'page_id'
));
Parameter
$tableString Tabellenname.
$structArray Tabellenstruktur.
  • name (id)
  • type (bigint)
  • length (20)
  • null (false)
  • default (0)

◆ begin()

begin ( )

Transaktion beginnen.

Definiert in Zeile 985 der Datei Ego_Sql_Abstract.php.

◆ commit()

commit ( )

Transaktion ausführen.

Definiert in Zeile 991 der Datei Ego_Sql_Abstract.php.

◆ connect()

connect (   $database = '',
  $host = '',
  $user = '',
  $password = '' 
)
abstract

Mit der Datenbank verbinden.

// Synopsis:
$db = new Ego_Sql;
$db->connect( [ $database [, $host [, $user [, $password]]]] );

Eine neue Datenbankverbindung sollte nicht direkt über diese Methode erstellt werden. Bitte verwenden Sie die Funktion new_db_connection().

// Beispiel:
$db = new_db_connection();
Parameter
string$databaseDer Datenbankname.
string$hostDer Datenbankserver.
string$userder Datenbankbenutzer.
string$passwordDas Datenbankpasswort.
Ausnahmebehandlung
Ego_Sql_Exception::CONNECT_ERROR

◆ createTable()

createTable (   $table,
  $struct,
  $drop_flag = true 
)
abstract

Tabelle erzeugen.

// Beispiel:
$db = new_db_connection();
$db->createTable(
'testtable', array(
'tid' => 'bigint auto_increment',
'page_id' => 'bigint',
'test_name' => 'varchar(200)',
'PRIMARY tid' => 'tid',
'KEY page_id' => 'page_id'
),
true);
Parameter
$tableString Tabellenname.
$structArray Tabellenstruktur.
  • name (id)
  • type (bigint)
  • length (20)
  • null (false)
  • default (0)
$drop_flagBoolean Eine evtl. vorhandene Tabelle löschen.

◆ current()

current ( )

Iterator: Aktuelles Element zurückgeben.

Rückgabe
array

Definiert in Zeile 678 der Datei Ego_Sql_Abstract.php.

◆ delete()

delete (   $query)

Einträge aus einer Tabelle löschen.

  • from/table [string] => Tabelle
  • where [string] => Bedingungen
    • delete from from where where
// Beispiel:
$db = new_db_connection();
$db->delete(array(
'table' => 'demo_de',
'where' => 'id=:id',
'bind' => array(
'id' => 5
)
));
Parameter
$queryArray assoziatives Feld, in dem angegeben wird, was gelöscht werden soll
Rückgabe
Integer Zeiger auf die Abfrage

Definiert in Zeile 465 der Datei Ego_Sql_Abstract.php.

◆ dropTable()

dropTable (   $table)

Tabelle löschen.

// Beispiel:
$db = new_db_connection();
$db->dropTable('testtable');
Parameter
$tableString Tabellenname.

Definiert in Zeile 977 der Datei Ego_Sql_Abstract.php.

◆ export()

export (   $table)

Daten exportieren.

// Beispiel:
$db = new_db_connection();
$db_export = $db->export('demo_de');
file_put_contents('/tmp/demo_de_export.txt', serialize($db_export));
Parameter
$tableString Tabellenname.
Rückgabe
Array Enthält alle Einträge der Tabelle, wobei die Einträge selbst als assoziatives Array vorliegen.

Definiert in Zeile 787 der Datei Ego_Sql_Abstract.php.

◆ getPrimary()

getPrimary (   $table)
abstract

Gibt die Primärschlüsselfelder einer Tabelle als Array zurück.

Parameter
String$tableTabellenname
Rückgabe
array Primärschlüsselfeldnamen

◆ getQueryInfo()

getQueryInfo ( )

Informationen zur Durchführung einer Abfrage ausgeben.

Debug und Performancehinweise.

Rückgabe
String

Definiert in Zeile 1017 der Datei Ego_Sql_Abstract.php.

◆ getTables()

getTables (   $like = '')

Alle Tabellen der DB vom CMS auslesen

//Beispiel:
$db = new_db_connection();
$page_table = 'demo_de'
foreach($db->getTables($page_table) as $table)
{
$db->dropTable($table);
}
Parameter
String$likeName der gesuchten Tabellen mit anfang site_lang
Rückgabe
array

Definiert in Zeile 1084 der Datei Ego_Sql_Abstract.php.

◆ getVersion()

getVersion ( )
abstract

◆ import()

import (   $table,
  $content,
  $primary = array(),
  $c_date_fieldname = '',
  $c_date_value = '' 
)

Daten importieren.

// Beispiel:
$db = new_db_connection();
$db_export = unserialize(file_get_contents('/tmp/demo_de_export.txt'));
$db->import('demo_de', $db_export);
Parameter
$tableString Tabellenname.
$contentArray Alle Einträge der Tabelle, wobei die Einträge selbst als assoziatives Array vorliegen müssen.
Ausnahmebehandlung
Ego_Sql_Exception

Definiert in Zeile 814 der Datei Ego_Sql_Abstract.php.

Benutzt Ego_Sql_Exception\IMPORT_ERROR.

◆ insert()

insert (   $query)

Einen Eintrag hinzufügen.

  • replace [bool] => replace Flag
  • table [string] => Tabelle
  • set [array] => assoziatives key/val array
  • key [array] => keys (Feldnamen)
  • val [array] => Werte
// Beispiel:
$db = new_db_connection();
$db->insert(array(
'table' => 'warenkorb',
'set' => array(
'id' => 1,
'name' => 'Test'
)
));
Parameter
$queryArray assoziatives Feld, das den neuen Eintrag bestimmt
Rückgabe
Integer Zeiger auf die Abfrage
Ausnahmebehandlung
Ego_Sql_Exception

Definiert in Zeile 600 der Datei Ego_Sql_Abstract.php.

◆ key()

key ( )

Iterator: Aktuellen Schlüssel, hier Index der Ergbenisse, zurückgeben.

Rückgabe
integer

Definiert in Zeile 698 der Datei Ego_Sql_Abstract.php.

◆ next()

next ( )

Iterator: Zum nächsten Element springen.

Rückgabe
$this->Record or null

Definiert in Zeile 688 der Datei Ego_Sql_Abstract.php.

◆ nextRecord()

nextRecord ( )

Die nächste Ergebniszeile holen.

Diese Funktion gibt true zurück, wenn eine weitere Zeile von der Datenbank geholt werden konnte. Falls schon alle Ergebnisse abgefragt wurden, wird false zurückgegeben.

Die Ergebniszeile steht in dem assoziativen Feld Ego_Sql_Abstract::Record. Die Feldnamen werden als Schlüssel verwendet.

Datenbankabfragen können zwischengespeichert werden.

// Beispiel:
$db = new_db_connection();
$db->select(array(
'fields' => 'id, name, short',
'table' => 'demo_de'
));
while( $db->nextRecord() !== false )
{
echo "Kurzbeschreibung der Seite: " . $db->Record['name'] . ": " . $db->Record['short'] . "\n";
}
Rückgabe
$this->Record or null

Definiert in Zeile 211 der Datei Ego_Sql_Abstract.php.

Wird benutzt von Ego_Sql_mysqli\tableExists().

+ Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

◆ numRecords()

numRecords ( )

Anzahl der Ergebniszeilen.

Achtung
Diese Funktion sollte aus datenbankspezifischen Kompatibilitätsgründen nicht verwendet werden. Stattdessen sollte man mit Ego_Sql_Abstract::nextRecord arbeiten.
// Beispiel:
$db = new_db_connection();
$db->select(array(
'fields' => 'id, name, short',
'table' => 'demo_de'
));
echo "Anzahl der Ergebnisse: " . $db->numRecords() . "\n";
Rückgabe
integer Anzahl der Zeilen der letzten Datenbankabfrage. Falls noch keine Abfrage durchgeführt wurde, wird 0 zurückgegeben.

Definiert in Zeile 255 der Datei Ego_Sql_Abstract.php.

◆ numRows()

numRows ( )

Ein Alias für numRecords()

Rückgabe
integer Anzahl der Zeilen der letzten Datenbankabfrage. Falls noch keine Abfrage durchgeführt wurde, wird 0 zurückgegeben.

Definiert in Zeile 734 der Datei Ego_Sql_Abstract.php.

◆ onError()

onError (   $action)
protected

Ausführen wenn die Verbindung zur Datenbank fehlgeschlagen ist

Parameter
string$action
Rückgabe
null

Definiert in Zeile 1046 der Datei Ego_Sql_Abstract.php.

Benutzt Ego_System\file_exists().

Wird benutzt von Ego_Sql_mysqli\connect().

+ Hier ist ein Graph, der zeigt, was diese Funktion aufruft:
+ Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

◆ optimize()

optimize (   $table)

Optimiert Tabelle

Definiert in Zeile 1035 der Datei Ego_Sql_Abstract.php.

◆ query()

query (   $query,
  $appendCurrent = false 
)

Eine Abfrage absetzen.

Diese Methode sollte nie direkt aufgerufen werden.

Siehe auch
Ego_Sql_Abstract::select
Ego_Sql_Abstract::delete
Ego_Sql_Abstract::insert
Ego_Sql_A bstract::update
Parameter
$queryString die Datenbankabfrage
$appendCurrentbool aktuellen Query an vorhandenen anfügen
Rückgabe
integer den Abfrage Handle

Definiert in Zeile 143 der Datei Ego_Sql_Abstract.php.

◆ repair()

repair (   $table)

Eine Tabelle reparieren

Parameter
string$tableTabellenname

Definiert in Zeile 1005 der Datei Ego_Sql_Abstract.php.

◆ replace()

replace (   $query)

Einen Eintrag ersetzen.

Wie insert, aber mit gesetztem replace Flag.

// Beispiel:
$db = new_db_connection();
$db->replace(array(
'table' => 'warenkorb',
'set' => array(
'id' => 1,
'name' => 'Test'
)
));
Parameter
$queryArray assoziatives Feld, das den Eintrag bestimmt
Rückgabe
Integer Zeiger auf die Abfrage

Definiert in Zeile 653 der Datei Ego_Sql_Abstract.php.

◆ rewind()

rewind ( )

Iterator: Zurücksetzen.

Achtung
Nicht implementiert.

Definiert in Zeile 716 der Datei Ego_Sql_Abstract.php.

◆ rollback()

rollback ( )

Transaktion zurücksetzen.

Definiert in Zeile 997 der Datei Ego_Sql_Abstract.php.

◆ select()

select (   $query,
  $cache = false 
)

Ein SQL select Statement absetzen.

  • fields [string] => was
  • from/table [string] => Tabellen
  • where [string] => Bedingungen
    • select fields from from where where

select * from base_de where id=1

  • group [string] => Gruppierung
    • select fields from from left join join group by group
    • select * from egotec_user left join egotec_user_group using(user_id) group by egotec_user.user_id
  • order [string] => Sortierung
    • select fields from from where where order by order
    • select * from base_de where title like 'test' order by title asc
  • proposed_order [array] => Vorgeschlagene Sortierung. Achtung: Nur für MySQL implementiert
    • field [string] => Das Feld auf das die Sortierung angewandt werden soll
    • values [array] => Die vorgeschlagenen Werte in entsprechender Reihenfolge
  • limit [string] => from/until
    • select fields from from where where limit limit
    • select * from base_de where type='news_entry' limit 0,5
  • join [array] => weitere Tabellen in Abfrage aufnehmen
    • select fields from from left join join[0] left join join[1] ...
    • select * from base_de left join egotec_user
  • union => Ein Feld bestehend aus weiteren $query Feldern. Mehrere selects können so zu einer Abfrage zusammengefasst werden.
  • distinct [boolean] => Nur unterschiedliche Ergebnisse zurückgeben. Doppelte Einträge werden aussortiert.
  • bind [array] => assoziatives Array mit Namen der Platzhalter und dem Wert.
// Beispiel:
$db = new_db_connection();
$db->select(array(
'fields' => 'id, name, short',
'table' => 'demo_de'
));
// Beispiel:
$db = new_db_connection();
$db->select(array(
'fields' => 'id, name, short',
'table' => 'demo_de',
'limit' => '0,5',
'order' => 'name',
'distinct' => true,
'where' => 'name=:name',
'bind' => array(
'name' => 'Homepage'
)
));
Parameter
$queryArray Ein assoziatives Feld, das die Selektion beschreibt.
Ego_Cache | bool$cacheAbfragecache.
Rückgabe
Integer Zeiger auf die Abfrage

Definiert in Zeile 402 der Datei Ego_Sql_Abstract.php.

Benutzt Ego_System\log().

+ Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

◆ showColumns()

showColumns (   $table)
abstract

Alle Spalten einer Tabelle auslesen

// Beispiel:
$db = new_db_connection();
$db->showColumns("egotec_users");
Parameter
$tableString Name der Tabelle
Rückgabe
Array Beschreibung der Spalten 0 => array(field => name, type => varchar(255)), 1 => ...

◆ tableExists()

tableExists (   $table)

Prüft ob eine Tabelle mit einem bestimmten Namen exisitert.

Rückgabe
boolean

Definiert in Zeile 1027 der Datei Ego_Sql_Abstract.php.

◆ update()

update (   $query)

Einen Eintrag aktualisieren.

  • table [string] => Tabelle
  • set [array] => assoziatives key/val array
  • set_f [array] => assoziatives key/val array mit Funktionsaufrufen
  • key [array] => keys (Feldnamen)
  • val [array] => Werte
  • where [string] => Bedingungen
    • update table set key[0]="<i>val[0]</i>", key[1]="val[1]", ... where where
    • update base_de set name="Home", title="Homepage" where id=1*
// Beispiel:
$db = new_db_connection();
$db->update(array(
'table' => 'demo_de',
'set' => array(
'name' => 'Start'
),
'where' => 'name=:name',
'bind' => array(
'name' => 'Homepage'
)
));
Parameter
$queryArray assoziatives Feld, in dem angegeben wird, was wie aktualisiert wird
Rückgabe
Integer Zeiger auf die Abfrage

Definiert in Zeile 527 der Datei Ego_Sql_Abstract.php.

◆ valid()

valid ( )

Iterator: Ist in $Record ein Ergebnis enthalten?

Definiert in Zeile 706 der Datei Ego_Sql_Abstract.php.

Dokumentation der Datenelemente

◆ $_cached

$_cached = false
protected

boolean

Aktiviert, falls der Zwischenspeicher benutzt werden soll.

Definiert in Zeile 33 der Datei Ego_Sql_Abstract.php.

◆ $_currentRow

$_currentRow
protected

integer

Aktuelle Position innerhalb der Ergebnisse.

Definiert in Zeile 30 der Datei Ego_Sql_Abstract.php.

Wird benutzt von Ego_Sql_mysqli\_nextRecord().

◆ $_db

$_db
protected

Datenbankverbindung

Definiert in Zeile 26 der Datei Ego_Sql_Abstract.php.

◆ $_transaction

$_transaction = false
protected

boolean

Aktiviert, falls eine Transaktion gestartet wurde.

Definiert in Zeile 34 der Datei Ego_Sql_Abstract.php.

◆ $currentBind

$currentBind

array

Zeiger auf die aktuell gebundenen Werte der Abfrage.

Definiert in Zeile 28 der Datei Ego_Sql_Abstract.php.

◆ $currentQuery

$currentQuery

string

Zeiger auf die aktuelle Abfrage.

Definiert in Zeile 27 der Datei Ego_Sql_Abstract.php.

◆ $escapeChar

$escapeChar = "`"
protected

Escapce character for field names.

Definiert in Zeile 25 der Datei Ego_Sql_Abstract.php.

◆ $Record

$Record

array

Das letzte Ergebnis als assoziatives Feld mit den Feldnamen als Schlüssel.

Definiert in Zeile 29 der Datei Ego_Sql_Abstract.php.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: