--- /Users/pdv/Downloads_sorted/OS X/databases/Radicore/radicore2.11/dict/classes/dict_database_s01.class.inc 2017-08-17 16:22:44.000000000 +0200 +++ /Library/WebServer/Documents/radicore/dict/classes/dict_database_s01.class.inc 2019-02-11 23:58:46.000000000 +0100 @@ -85,7 +85,7 @@ } else { $dbprefix = $server['dbprefix']; } // if - $dbnames = $this->_loadDatabases ($server['dbhost'], $dbnames, $dbprefix, $dbprefix_exclude, $switch_dbnames); + $dbnames = $this->_loadDatabases ($server, $dbnames, $dbprefix, $dbprefix_exclude, $switch_dbnames); if (!empty($dbprefix)) { $dbprefix_exclude[] = $dbprefix; } // if @@ -157,13 +157,13 @@ } // _cm_post_insertRecord // **************************************************************************** - function _loadDatabases ($dbhost, $dbnames, $dbprefix, $dbprefix_exclude, $switch_dbnames) + function _loadDatabases ($server, $dbnames, $dbprefix, $dbprefix_exclude, $switch_dbnames) // find databases which have this $dbprefix and load their names into $dbnames. { - if (!empty($dbhost)) { - $DDL =& $this->_getDBMSengineByHost($dbhost); - } else { - $DDL =& $this->_getDBMSengine($this->dbname); + if (!empty($server)) { + $DDL =& $this->_getDBMSengineByServer($server); + } else { + $DDL =& $this->_getDBMSengine($this->dbname); } // if // get list of all database names from the database server @@ -213,91 +213,88 @@ } // _loadDatabases // **************************************************************************** - function &_getDBMSengineByHost ($dbhost) + function &_getDBMSengineByServer ($server) // obtain the object that deals with the database engine for this table. { $engine = null; //$args = array('dbname' => $dbname); // multi-server option - // find out which server deals with this dbhost - foreach ($GLOBALS['servers'] as $servernum => $server) { - if (empty($server['dbnames'])) { - // DBNAMES entry missing - trigger_error($this->getLanguageText('sys0170', 'DBNAMES'), E_USER_ERROR); - } else { - $dbname_array = explode(',', $server['dbnames']); - $dbname_array = array_map('trim', $dbname_array); - } // if - if (!empty($server['switch_dbnames']) AND is_array($server['switch_dbnames'])) { - // database name in the class file may be switched to a different name on the server - $switch_dbnames = $server['switch_dbnames']; - } else { - $switch_dbnames = array(); - } // if - if ($server['dbhost'] == $dbhost) { - if (!isset($server['dbengine'])) { - trigger_error($this->getLanguageText('sys0170', 'DBENGINE'), E_USER_ERROR); - } else { - $engine = $server['dbengine']; - } // if - if (!isset($server['dbhost'])) { - trigger_error($this->getLanguageText('sys0170', 'DBHOST'), E_USER_ERROR); - } else { - $args['dbhost'] = $server['dbhost']; - } // if - if (!isset($server['dbusername'])) { - trigger_error($this->getLanguageText('sys0170', 'DBUSERNAME'), E_USER_ERROR); - } else { - $args['dbusername'] = $server['dbusername']; - } // if - if (!isset($server['dbuserpass'])) { - trigger_error($this->getLanguageText('sys0170', 'DBUSERPASS'), E_USER_ERROR); - } else { - $args['dbuserpass'] = $server['dbuserpass']; - } // if - if (!empty($server['dbport'])) { - $args['dbport'] = $server['dbport']; - } // if - if (!empty($server['dbsocket'])) { - $args['dbsocket'] = $server['dbsocket']; - } // if - if (!isset($server['dbprefix'])) { - trigger_error($this->getLanguageText('sys0170', 'DBPREFIX'), E_USER_ERROR); - } else { - $args['dbprefix'] = $server['dbprefix']; - } // if - if (!empty($server['ssl_key'])) { - $args['ssl_key'] = $server['ssl_key']; - } // if - if (!empty($server['ssl_cert'])) { - $args['ssl_cert'] = $server['ssl_cert']; - } // if - if (!empty($server['ssl_ca'])) { - $args['ssl_ca'] = $server['ssl_ca']; - } // if - if (!empty($server['ssl_capath'])) { - $args['ssl_capath'] = $server['ssl_capath']; - } // if - if (!empty($server['ssl_cipher'])) { - $args['ssl_cipher'] = $server['ssl_cipher']; - } // if - // these are options for non-MySQL databases - if (isset($server['PGSQL_dbname'])) { - $args['PGSQL_dbname'] =& $server['PGSQL_dbname']; - } // if - if (isset($server['SQLSRV_schema'])) { - $args['SQLSRV_schema'] =& $server['SQLSRV_schema']; - } // if - if (isset($server['serverName'])) { - $args['serverName'] =& $server['serverName']; - } // if - if (isset($server['connectionInfo'])) { - $args['connectionInfo'] =& $server['connectionInfo']; - } // if - break; // so stop here - } // if - } // foreach + + if (empty($server['dbnames'])) { + // DBNAMES entry missing + trigger_error($this->getLanguageText('sys0170', 'DBNAMES'), E_USER_ERROR); + } else { + $dbname_array = explode(',', $server['dbnames']); + $dbname_array = array_map('trim', $dbname_array); + } // if + if (!empty($server['switch_dbnames']) AND is_array($server['switch_dbnames'])) { + // database name in the class file may be switched to a different name on the server + $switch_dbnames = $server['switch_dbnames']; + } else { + $switch_dbnames = array(); + } // if + + if (!isset($server['dbengine'])) { + trigger_error($this->getLanguageText('sys0170', 'DBENGINE'), E_USER_ERROR); + } else { + $engine = $server['dbengine']; + } // if + if (!isset($server['dbhost'])) { + trigger_error($this->getLanguageText('sys0170', 'DBHOST'), E_USER_ERROR); + } else { + $args['dbhost'] = $server['dbhost']; + } // if + if (!isset($server['dbusername'])) { + trigger_error($this->getLanguageText('sys0170', 'DBUSERNAME'), E_USER_ERROR); + } else { + $args['dbusername'] = $server['dbusername']; + } // if + if (!isset($server['dbuserpass'])) { + trigger_error($this->getLanguageText('sys0170', 'DBUSERPASS'), E_USER_ERROR); + } else { + $args['dbuserpass'] = $server['dbuserpass']; + } // if + if (!empty($server['dbport'])) { + $args['dbport'] = $server['dbport']; + } // if + if (!empty($server['dbsocket'])) { + $args['dbsocket'] = $server['dbsocket']; + } // if + if (!isset($server['dbprefix'])) { + trigger_error($this->getLanguageText('sys0170', 'DBPREFIX'), E_USER_ERROR); + } else { + $args['dbprefix'] = $server['dbprefix']; + } // if + if (!empty($server['ssl_key'])) { + $args['ssl_key'] = $server['ssl_key']; + } // if + if (!empty($server['ssl_cert'])) { + $args['ssl_cert'] = $server['ssl_cert']; + } // if + if (!empty($server['ssl_ca'])) { + $args['ssl_ca'] = $server['ssl_ca']; + } // if + if (!empty($server['ssl_capath'])) { + $args['ssl_capath'] = $server['ssl_capath']; + } // if + if (!empty($server['ssl_cipher'])) { + $args['ssl_cipher'] = $server['ssl_cipher']; + } // if + // these are options for non-MySQL databases + if (isset($server['PGSQL_dbname'])) { + $args['PGSQL_dbname'] =& $server['PGSQL_dbname']; + } // if + if (isset($server['SQLSRV_schema'])) { + $args['SQLSRV_schema'] =& $server['SQLSRV_schema']; + } // if + if (isset($server['serverName'])) { + $args['serverName'] =& $server['serverName']; + } // if + if (isset($server['connectionInfo'])) { + $args['connectionInfo'] =& $server['connectionInfo']; + } // if + if (empty($engine)) { // "entry missing for database 'X'" trigger_error($this->getLanguageText('sys0171', $dbname), E_USER_ERROR); @@ -329,7 +326,7 @@ require_once "dml.$engine.class.inc"; } // if } // if - + $servernum = array_search($server,$GLOBALS['servers']); if (isset($servernum)) { $DML = RDCsingleton::getInstance('server__' .$servernum .'__' .$engine, $args, true); } else {