183 |
183 |
$db['name'] = isset($db['name']) ? $db['name'] : 'dummy';
|
184 |
184 |
$db['charset'] = isset($db['charset']) ? trim($db['charset']) : 'utf8';
|
185 |
185 |
$db['table_prefix'] = (isset($db['table_prefix']) ? $db['table_prefix'] : '');
|
|
186 |
if (isset($db['options']) && is_array($db['options'])) {
|
|
187 |
foreach ($db['options'] as $key=>$value) {
|
|
188 |
$aRetval['options'][constant($key)] = $value;
|
|
189 |
}
|
|
190 |
}
|
186 |
191 |
if(!defined('TABLE_PREFIX')) { define('TABLE_PREFIX', $db['table_prefix']); }
|
187 |
192 |
if($sDbConnectType == 'dsn') {
|
188 |
193 |
// build dsn to connect
|
189 |
|
$aRetval[0] = $db['type'].':dbname='.$db['name'].';host='.$db['host'].';'
|
190 |
|
. ($db['port'] != '' ? 'port='.(int)$db['port'].';' : '');
|
191 |
|
$aRetval[1] = array('CHARSET' => $db['charset'], 'TABLE_PREFIX' => $db['table_prefix']);
|
192 |
|
$aRetval[2] = array( 'user' => $db['user'], 'pass' => $db['pass']);
|
|
194 |
$aRetval['dsn'] = $db['type'].':dbname='.$db['name'].';host='.$db['host']
|
|
195 |
. ($db['port'] != '' ? ';port='.(int)$db['port'] : '');
|
|
196 |
if ($db['charset'] == 'utf8') {
|
|
197 |
$aRetval['dsn'] .= ';charset=UTF8';
|
|
198 |
$aRetval['options'][constant('PDO::MYSQL_ATTR_INIT_COMMAND')] = 'SET NAMES \'UTF8\'';
|
|
199 |
}
|
|
200 |
$aRetval['options'] = '';
|
|
201 |
$aRetval['user'] = $db['user'];
|
|
202 |
$aRetval['password'] = $db['pass'];
|
|
203 |
$aRetval['addons'] = array('CHARSET' => $db['charset'], 'TABLE_PREFIX' => $db['table_prefix']);
|
193 |
204 |
}else {
|
194 |
205 |
// build url to connect
|
195 |
|
$aRetval[0] = $db['type'].'://'.$db['user'].':'.$db['pass'].'@'
|
196 |
|
. $db['host'].($db['port'] != '' ? ':'.$db['port'] : '').'/'.$db['name']
|
197 |
|
. '?Charset='.$db['charset'].'&TablePrefix='.$db['table_prefix'];
|
|
206 |
$aRetval['url'] = $db['type'].'://'.$db['user'].':'.$db['pass'].'@'
|
|
207 |
. $db['host'].($db['port'] != '' ? ':'.$db['port'] : '').'/'.$db['name']
|
|
208 |
. '?Charset='.$db['charset'].'&TablePrefix='.$db['table_prefix'];
|
198 |
209 |
}
|
199 |
210 |
return $aRetval;
|
200 |
211 |
}
|
... | ... | |
256 |
267 |
// Create global database instance ---
|
257 |
268 |
$oDb = $database = WbDatabase::getInstance();
|
258 |
269 |
if($sDbConnectType == 'dsn') {
|
259 |
|
$bTmp = $oDb->doConnect($aSqlData[0], $aSqlData[1]['user'], $aSqlData[1]['pass'], $aSqlData[2]);
|
|
270 |
$bTmp = $oDb->doConnect($aSqlData['dsn'], $aSqlData['user'], $aSqlData['password'], null, $aSqlData['addons']);
|
260 |
271 |
}else {
|
261 |
|
$bTmp = $oDb->doConnect($aSqlData[0]);
|
|
272 |
$bTmp = $oDb->doConnect($aSqlData['url']);
|
262 |
273 |
}
|
263 |
274 |
// remove critical data from memory
|
264 |
275 |
unset($aSqlData, $aCfg);
|
! build DSN extended for PDO::MYSQL_ATTR_INIT_COMMAND = 'SET NAMES xx'