| | |
| | | <?php |
| | | |
| | | /** |
| | | /* |
| | | +-----------------------------------------------------------------------+ |
| | | | This file is part of the Roundcube Webmail client | |
| | | | Copyright (C) 2005-2012, The Roundcube Dev Team | |
| | |
| | | } |
| | | |
| | | /** |
| | | * Returns list of tables in a database |
| | | * |
| | | * @return array List of all tables of the current database |
| | | */ |
| | | public function list_tables() |
| | | { |
| | | // get tables if not cached |
| | | if ($this->tables === null) { |
| | | // first fetch current database name |
| | | $d = $this->query("SELECT database()"); |
| | | $d = $this->fetch_array($d); |
| | | |
| | | // get list of tables in current database |
| | | $q = $this->query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES" |
| | | . " WHERE TABLE_SCHEMA = ? AND TABLE_TYPE = 'BASE TABLE'" |
| | | . " ORDER BY TABLE_NAME", $d ? $d[0] : ''); |
| | | |
| | | $this->tables = $q ? $q->fetchAll(PDO::FETCH_COLUMN, 0) : array(); |
| | | } |
| | | |
| | | return $this->tables; |
| | | } |
| | | |
| | | /** |
| | | * Get database runtime variables |
| | | * |
| | | * @param string $varname Variable name |
| | |
| | | { |
| | | if (!isset($this->variables)) { |
| | | $this->variables = array(); |
| | | |
| | | $result = $this->query('SHOW VARIABLES'); |
| | | |
| | | while ($row = $this->fetch_array($result)) { |
| | | $this->variables[$row[0]] = $row[1]; |
| | | } |
| | | } |
| | | |
| | | return isset($this->variables[$varname]) ? $this->variables[$varname] : $default; |
| | | if (array_key_exists($varname, $this->variables)) { |
| | | return $this->variables[$varname]; |
| | | } |
| | | |
| | | // configured value has higher prio |
| | | $conf_value = rcube::get_instance()->config->get('db_' . $varname); |
| | | if ($conf_value !== null) { |
| | | return $this->variables[$varname] = $conf_value; |
| | | } |
| | | |
| | | $result = $this->query('SHOW VARIABLES LIKE ?', $varname); |
| | | |
| | | while ($row = $this->fetch_array($result)) { |
| | | $this->variables[$row[0]] = $row[1]; |
| | | } |
| | | |
| | | // not found, use default |
| | | if (!isset($this->variables[$varname])) { |
| | | $this->variables[$varname] = $default; |
| | | } |
| | | |
| | | return $this->variables[$varname]; |
| | | } |
| | | |
| | | /** |