openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 31e54e90c2cf1173745eb93c9480d80f1e9e2391
parent 02438f24ffc170f1c28280c3e35ae2abe5fe78ba
Author: dankert <devnull@localhost>
Date:   Sat, 21 Apr 2007 14:57:52 +0200

Ersetzen der Tabellennamen abh?ngig vom Prefix der entsprechenden Datenbank. die aktuell ausgew?hlte Datenbank ist nicht immer die, die benutzt werden muss.

Diffstat:
functions/db.inc.php | 18+++++++++++++-----
serviceClasses/Sql.class.php | 9++++++---
2 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/functions/db.inc.php b/functions/db.inc.php @@ -23,16 +23,24 @@ // require( 'serviceClasses/Sql.class.php'); -function table_names() +function table_names( $dbid ) { $t = array(); global $conf; global $SESS; - $db = Session::getDatabase(); - if ( is_object( $db ) ) - $conf_db_prefix = $db->conf['prefix']; - else $conf_db_prefix = ''; + if ( empty($dbid) ) + { + $db = Session::getDatabase(); + if ( is_object( $db ) ) + $conf_db_prefix = $db->conf['prefix']; + else + $conf_db_prefix = ''; + } + else + { + $conf_db_prefix = $conf['database'][$dbid]['prefix']; + } $t['t_include'] = $conf_db_prefix.'include'; $t['t_element'] = $conf_db_prefix.'element'; diff --git a/serviceClasses/Sql.class.php b/serviceClasses/Sql.class.php @@ -94,14 +94,17 @@ class Sql var $param = array(); + var $dbid = ''; + /** * Erzeugt ein SQL-Objekt und analysiert die SQL-Anfrage. */ - function Sql( $query = '' ) + function Sql( $query = '', $dbid='' ) { + $this->dbid = $dbid; $this->parseSourceQuery( $query ); - + $this->data = array(); } @@ -136,7 +139,7 @@ class Sql // Tabellennamen in die Platzhalter setzen. // Dies ist noch OpenRat-spezifisch und sollte bei einer sauberen Abstraktion woanders gemacht werden. Aber wo? - foreach( table_names() as $t=>$name ) + foreach( table_names($this->dbid) as $t=>$name ) { $this->setParam($t,$name,false ); }