abmn614/presto-client-php

PHP的Presto客户端库。

V1.1.6 2022-11-14 13:35 UTC

This package is auto-updated.

Last update: 2024-09-15 06:50:31 UTC


README

PHP编程语言的Presto客户端。

灵感来源于illuminate/database

功能

  • 定义多个连接。
  • 以关联数组的形式获取结果。
  • 添加对session的支持
  • 添加对insert overwrite的支持

安装

composer require abmn614/presto-client-php

快速开始

创建Presto管理器

<?php

use Clouding\Presto\Presto;

$presto = new Presto();

$presto->addConnection([
    'host' => 'localhost:8080',
    'catalog' => 'default',
    'schema' => 'presto',
]);

// Set manager as global (optional)
$presto->setAsGlobal();

获取默认连接并发送查询

<?php

$posts = $presto->connection()->query('select * from posts')->get();

如果将管理器设置为全局,则直接查询并获取数据

<?php

$posts = Presto::query('SELECT * FROM posts')->get();
/* 
    [
        [1, 'Good pracetice'],
        [2, 'Make code cleaner'],
    ]
*/

$posts = Presto::query('SELECT * FROM posts')->getAssoc();
/* 
    [
        ['id' => 1, 'title' => 'Good pracetice'],
        ['id' => 2, 'title' => 'Make code cleaner'],
    ]
*/    

用法

多个连接

<?php

use Clouding\Presto\Presto;

$presto = new Presto();

$presto->addConnection([
    'host' => 'localhost:8080',
    'catalog' => 'default',
    'schema' => 'presto',
]);

$presto->addConnection([
    'host' => 'localhost:8080',
    'catalog' => 'default2',
    'schema' => 'presto2',
], 'presto2');

$presto->setAsGlobal();

// Get connections
$connections = Presto::getConnections();

// Specify connection
$posts = Presto::query('SELECT * FROM posts', 'presto2')->get();

运行测试

composer test