| +-----------------------------------------------------------------------+ */ /** * Database independent query interface * * This is a wrapper for the PHP PDO * * @package Database * @version 1.0 */ class rcube_db_mysql extends rcube_db { protected function init() { // SQL identifiers quoting $this->options['identifier_start'] = '`'; $this->options['identifier_end'] = '`'; } /** * Abstract SQL statement for value concatenation * * @return string SQL statement to be used in query */ public function concat(/* col1, col2, ... */) { $args = func_get_args(); if (is_array($args[0])) { $args = $args[0]; } return 'CONCAT(' . join(', ', $args) . ')'; } /** * Returns PDO DSN string from DSN array (parse_dsn() result) */ protected function dsn_string($dsn) { $params = array(); $result = 'mysql:'; if ($dsn['database']) { $params[] = 'dbname=' . $dsn['database']; } if ($dsn['hostspec']) { $params[] = 'host=' . $dsn['hostspec']; } if ($dsn['port']) { $params[] = 'port=' . $dsn['port']; } if ($dsn['socket']) { $params[] = 'unix_socket=' . $dsn['socket']; } $params[] = 'charset=utf8'; if (!empty($params)) { $result .= implode(';', $params); } return $result; } }