MYSQL 操作多个数据库

来源:互联网 发布:视频大数据应用领域 编辑:程序博客网 时间:2024/06/05 09:11
    // 也可以将数据库和各自的连接信息分别构建一个数组,然后再对这个数组进行处理    public function get_databases() {        $pdo = $this->pdo_conn();        try {            $sql = "show databases like 'xdb\_%' ";    //获取所有以 xdb_ 为前缀的数据库            $stmt = $pdo->prepare($sql);            $stmt->execute();            // $databases = $stmt->fetchAll(PDO::FETCH_NUM);            $databases = array();            while ( false != ($db = $stmt->fetch(PDO::FETCH_NUM)) ) {                $databases[] = $db[0];            }            $stmt = null;            return $databases;        } catch(PDOException $e) {            perror_msg($e);        }    }    public function get_cids_from_all_databases($databases) {        $cids = array();        foreach ($databases as $key => $db) {            $cur_dsn = "mysql:host={$this->host};port={$this->port};dbname={$db}";            // 对每个不同的数据库创建的各自的数据库连接。            $pdo_{$key} = $this->pdo_conn($cur_dsn);            try {                $pdo_{$key}->query("use $db");                $cur_sql = <<<____SQL                    select `CID` from `t_zds` limit 1;____SQL;                $stmtx = $pdo_{$key}->prepare($cur_sql);                try {                    $stmtx->execute();                } catch (PDOException $e) {                    $stmtx->debugDumpParams();                    $this->perror_msg($e);                }                while ( false !== ($row = $stmtx->fetchColumn()) ) {                    $cids[$db] = $row;                }                $stmtx = null;            } catch (PDOException $e) {                $this->perror_msg($e);            }        }        return $cids;    }
0 0