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:
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 );
}