tp5 AWS redshift驱动(修正非public错误)

浏览:729 最后更新:2017-08-29 15:32 分类:驱动
Redshift 是亚马逊AWS的一个pgsql兼容数PB级别的列式据仓库.其特点是执行sum count group速度飞快 在数分钟内可以完成数TB的数据统计
TP5中 使用pgsql会出错

把文件放到 thinkphp\library\think\db\connector 中
database.php 中 type 改为 'redshift' 即可<?php
namespace think\db\connector;

use PDO;
use think\db\Connection;
/**
 * Redshift数据库驱动
 * by Joffe
 */
class Redshift extends Pgsql
{
    /**
     * 取得数据表的字段信息
     * @access public
     * @return array
     */
    public function getFields($tableName)
    {
        list($tableName) = explode(' ', $tableName);//屏蔽as等后面内容
        $tmp = explode('.',$tableName,2);
        if(count($tmp) == 2){
             $schemaname = $tmp[0];
             $table = $tmp[1];
        }else{
            $schemaname='public';
            $table = $tmp[0];
        }
        $result          = $this->query("select \"column\",\"type\",\"notnull\" from pg_table_def where schemaname = '$schemaname' and tablename = '$table';");
        $info            = [];
        if ($result) {
            foreach ($result as $val) {
                $info[$val['column']] = [
                    'name'    => $val['column'],
                    'type'    => $val['type'],
                    'notnull' => $val['notnull'],
                    //'default' => $val['default'],
                    'primary' => '',
                    'autoinc' => '',
                ];
            }
        }
        //dump($info);
        return $info;
    }
}
评论( 相关
后面还有条评论,点击查看>>