You need to enable JavaScript to run this app.
ByteHouse 企业版

ByteHouse 企业版

复制全文
连接集群
PHP Driver
复制全文
PHP Driver

本文介绍如何在 PHP 开发环境连接并访问 ByteHouse 云数仓。
ByteHouse 兼容下列开源 ClickHouse PHP Driver 程序:

  • HTTP 方式连接: smi2/phpClickHouse ( 本文已在驱动程序 1.5 版本,PHP 版本 8.3.4 下验证)

前提条件

访问 ByteHouse 所需的连接信息,请参考 获取集群连接信息 获取。

使用方法

本章节介绍通过 smi2/phpClickHouse 程序连接 ByteHouse 的基本用法,您可以在程序 Github 主页 或者 Packagist 获取最新的文档和发布版本信息。

说明

smi2/phpClickHouse 程序 1.5 及以上版本,需要 php 7.3 及以上版本的支持。

程序安装

composer require smi2/phpclickhouse

// 安装 hyperf 3.1 框架 
// https://hyperf.wiki/3.1/#/zh-cn/quick-start/install
composer create-project hyperf/hyperf-skeleton 

连接到 ByteHouse

可参考下面代码样例连接到 ByteHouse ,注意根据前提条件中获取的信息填写$config 字段。

<?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://hyperf.wiki
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
 */

namespace App\Controller;

use ClickHouseDB\Client;

class IndexController extends AbstractController
{
    public function queryBH()
    {
        $user = $this->request->input('user', 'Hyperf'); // 填写用户名
        $password = $this->request->input('password', ''); // 填写密码
        $host = $this->request->input('host', ''); // 填写 Host
        $query = $this->request->input('query', 'select * from system.clusters'); // sql语句

        $config = [
            'host' => "$host",
            'port' => '8123',
            'username' => "{$user}",
            'password' => "$password",
            'https' => false
        ];
        $db = new Client($config);
        $db->database('default');
        $db->setTimeout(10);       // 10 seconds
        $db->setConnectTimeOut(5); // 5 seconds

        $statement = $db->select($query); 
        $json = json_encode($statement->rows()); //返回查询数组
        return [
            'query' => "{$query}",
            'result' => "$json"
        ];
    }
}
最近更新时间:2024.09.20 18:02:26
这个页面对您有帮助吗?
有用
有用
无用
无用