db_pdo::getTables PHP Method

getTables() public method

取得数据库的表信息
public getTables ( $dbName = '' )
    public function getTables($dbName = '')
    {
        //if(C('DB_FETCH_TABLES_SQL')) {
        // 定义特殊的表查询SQL
        // $sql   = str_replace('%db%',$dbName,C('DB_FETCH_TABLES_SQL'));
        //}else{
        switch ($this->dbType) {
            case 'ORACLE':
            case 'OCI':
                $sql = 'SELECT table_name FROM user_tables';
                break;
            case 'MSSQL':
            case 'SQLSRV':
                $sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'";
                break;
            case 'PGSQL':
                $sql = "select tablename as Tables_in_test from pg_tables where  schemaname ='public'";
                break;
            case 'IBASE':
                // 暂时不支持
                E(L('_NOT_SUPPORT_DB_') . ':IBASE');
                break;
            case 'SQLITE':
                $sql = "SELECT name FROM sqlite_master WHERE type='table' " . "UNION ALL SELECT name FROM sqlite_temp_master " . "WHERE type='table' ORDER BY name";
                break;
            case 'MYSQL':
            default:
                if (!empty($dbName)) {
                    $sql = 'SHOW TABLES FROM ' . $dbName;
                } else {
                    $sql = 'SHOW TABLES ';
                }
        }
        //}
        $result = $this->query($sql);
        $info = array();
        foreach ($result as $key => $val) {
            $info[$key] = current($val);
        }
        return $info;
    }