Revision 2085
Added by darkviper almost 12 years ago
| initialize.php | ||
|---|---|---|
| 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); |
Also available in: Unified diff
! build DSN extended for PDO::MYSQL_ATTR_INIT_COMMAND = 'SET NAMES xx'