| | |
| | | */ |
| | | class rcube_mdb2 |
| | | { |
| | | private static $tables; |
| | | |
| | | var $db_dsnw; // DSN for write operations |
| | | var $db_dsnr; // DSN for read operations |
| | | var $db_connected = false; // Already connected ? |
| | |
| | | $this->db_error_msg = $q->userinfo; |
| | | |
| | | raise_error(array('code' => 500, 'type' => 'db', |
| | | 'line' => __LINE__, 'file' => __FILE__, |
| | | 'line' => __LINE__, 'file' => __FILE__, |
| | | 'message' => $this->db_error_msg), TRUE, TRUE); |
| | | } |
| | | else |
| | |
| | | |
| | | |
| | | /** |
| | | * Wrapper for the SHOW TABLES command |
| | | * |
| | | * @return array List of all tables of the current database |
| | | */ |
| | | function list_tables() |
| | | { |
| | | // get tables if not cached |
| | | if (!self::$tables) { |
| | | self::$tables = array(); |
| | | |
| | | switch ($this->db_provider) { |
| | | case 'sqlite': |
| | | $result = $this->db_handle->query("SELECT name FROM sqlite_master WHERE type='table'"); |
| | | break; |
| | | default: |
| | | $result = $this->db_handle->query("SHOW TABLES"); |
| | | } |
| | | |
| | | if ($result !== false && !PEAR::isError($result)) |
| | | while ($rec = $result->fetchRow(MDB2_FETCHMODE_ORDERED)) |
| | | self::$tables[] = $rec[0]; |
| | | } |
| | | |
| | | return self::$tables; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Formats input so it can be safely used in a query |
| | | * |
| | | * @param mixed Value to quote |