All Projects → Yurunsoft → php-tdengine

Yurunsoft / php-tdengine

Licence: AGPL-3.0 license
大数据引擎 TDengine 的 PHP 客户端扩展,支持 Swoole!

Programming Languages

PHP
23972 projects - #3 most used programming language
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
M4
1887 projects

Projects that are alternatives of or similar to php-tdengine

Yurunhttp
YurunHttp 是开源的 PHP HTTP 客户端,支持链式操作,简单易用。完美支持Curl、Swoole 协程。QQ群:17916227
Stars: ✭ 197 (+217.74%)
Mutual labels:  swoole
docker-swoole-webapp
Simple Docker-image to build your applications based on Async PHP extensions.
Stars: ✭ 26 (-58.06%)
Mutual labels:  swoole
swoole-link-monitor
基于swoole 定时器与woker 实现链路监控
Stars: ✭ 34 (-45.16%)
Mutual labels:  swoole
Mega Wechat
基于Swoole的微信发送模板消息队列服务
Stars: ✭ 206 (+232.26%)
Mutual labels:  swoole
W7 Rangine Empty
软擎是基于 Php 7.2+ 和 Swoole 4.4+ 的高性能、简单易用的开发框架。支持同时在 Swoole Server 和 php-fpm 两种模式下运行。内置了 Http (Swoole, Fpm),Tcp,WebSocket,Process,Crontab服务。集成了大量成熟的组件,可以用于构建高性能的Web系统、API、中间件、基础服务等等。
Stars: ✭ 246 (+296.77%)
Mutual labels:  swoole
docker-images
本仓库为自定义及收藏的一些镜像,方便使用。包含PHP5、PHP7开发环境等镜像。
Stars: ✭ 18 (-70.97%)
Mutual labels:  swoole
Swoft Im
基于swoft-cloud的微服务架构,最小化拆分粒度,PHP7、多进程、协程、异步任务、mysql连接池、redi连接池、rpc连接池、服务治理、服务注册与发现、Aop切面、全注解
Stars: ✭ 189 (+204.84%)
Mutual labels:  swoole
yii2-s
🚀speed up yii2 tcp server、 restful by swoole
Stars: ✭ 34 (-45.16%)
Mutual labels:  swoole
Phpdhtspider
php实现的dht爬虫
Stars: ✭ 248 (+300%)
Mutual labels:  swoole
crow
Fast, unopinionated, minimalist web framework for PHP.
Stars: ✭ 47 (-24.19%)
Mutual labels:  swoole
Docker Files
Collection of prooph docker files
Stars: ✭ 232 (+274.19%)
Mutual labels:  swoole
Hyperf Admin
hyperf-admin 是基于 hyperf + vue 的配置化后台开发工具
Stars: ✭ 244 (+293.55%)
Mutual labels:  swoole
swoole-ide-helper-phar
Swoole IDE 自动补全,PHAR 包。
Stars: ✭ 14 (-77.42%)
Mutual labels:  swoole
Swoole Bundle
Symfony Swoole Bundle
Stars: ✭ 201 (+224.19%)
Mutual labels:  swoole
fast-laravel
基于Swoole的高性能HTTP服务器,加速您Laravel应用程序。
Stars: ✭ 33 (-46.77%)
Mutual labels:  swoole
Tsf
coroutine and Swoole based php server framework in tencent
Stars: ✭ 2,204 (+3454.84%)
Mutual labels:  swoole
dwoole
⚙️ Docker image for Swoole apps with Composer, auto-restart on development and a production-ready version.
Stars: ✭ 32 (-48.39%)
Mutual labels:  swoole
TT Jobs
基于 Swoole 定时管理系统
Stars: ✭ 22 (-64.52%)
Mutual labels:  swoole
HyperVue
🚀 基于 Hyperf + Vue + ElementUI 前后端分离的通用型管理后台
Stars: ✭ 23 (-62.9%)
Mutual labels:  swoole
LightMoon
A framework based swoole
Stars: ✭ 17 (-72.58%)
Mutual labels:  swoole

php-tdengine

GitHub Workflow Status (branch) Php Version imi License

大数据引擎 TDengine 的 PHP 客户端扩展,还支持了 Swoole 协程化。可以运行在传统 PHP 环境和 Swoole 环境下。

编写了在三大操作系统下的编译及测试用例,保证代码的稳定性和可靠性。

环境要求

Windows、Linux、MacOS

PHP >= 7.4

TDengine >= 2.0(已支持 TDengine 3.0)

Swoole >= 4.8 (可选)

编译安装

编译前请先安装 TDengine-client 或者自行编译 TDengine,详见 TDengine 文档:https://www.taosdata.com/cn/documentation/connector

非 Swoole 环境:

phpize && ./configure && make -j && make install

手动指定 tdengine 目录:

phpize && ./configure --with-tdengine-dir=/usr/local/Cellar/tdengine/2.4.0.0 && make -j && make install

--with-tdengine-dir= 后跟上 tdengine 目录。 适用于默认找不到的情况,或者 MacOS 系统用户。

Swoole 环境:

phpize && ./configure --enable-swoole && make -j && make install

启用扩展:

方法一:在 php.ini 中加入 extension=tdengine

方法二:运行带参数 php -dextension=tdengine test.php

PHP 代码编写

所有错误都会抛出异常: TDengine\Exception\TDengineException

基本:

use TDengine\Connection;

// 获取扩展版本号
var_dump(\TDengine\EXTENSION_VERSION);

// 设置客户端选项
\TDengine\setOptions([
    \TDengine\TSDB_OPTION_LOCALE => 'en_US.UTF-8', // 区域
    \TDengine\TSDB_OPTION_CHARSET => 'UTF-8', // 字符集
    \TDengine\TSDB_OPTION_TIMEZONE => 'Asia/Shanghai', // 时区
    \TDengine\TSDB_OPTION_CONFIGDIR => '/etc/taos', // 配置目录
    \TDengine\TSDB_OPTION_SHELL_ACTIVITY_TIMER => 3, // shell 活动定时器
]);

// 获取客户端版本信息
var_dump(\TDengine\CLIENT_VERSION);
var_dump(\TDengine\getClientInfo());

// 以下值都是默认值,不改可以不传
$host = '127.0.0.1';
$port = 6030;
$user = 'root';
$pass = 'taosdata';
$db = null;

// 实例化
$connection = new Connection($host, $port, $user, $pass, $db);
// 连接
$connection->connect();
// 获取连接参数
$connection->getHost();
$connection->getPort();
$connection->getUser();
$connection->getPass();
$connection->getDb();
// 获取服务端信息
$connection->getServerInfo();
// 选择默认数据库
$connection->selectDb('db1');
// 关闭连接
$connection->close();

查询:

// 查询
$resource = $connection->query($sql); // 支持查询和插入
// 获取结果集时间戳字段的精度,0 代表毫秒,1 代表微秒,2 代表纳秒
$resource->getResultPrecision();
// 获取所有数据
$resource->fetch();
// 获取一行数据
$resource->fetchRow();
// 获取字段数组
$resource->fetchFields();
// 获取列数
$resource->getFieldCount();
// 获取影响行数
$resource->affectedRows();
// 获取 SQL 语句
$resource->getSql();
// 获取连接对象
$resource->getConnection();
// 关闭资源(一般不需要手动关闭,变量销毁时会自动释放)
$resource->close();

参数绑定:

// 查询
$stmt = $connection->prepare($sql); // 支持查询和插入,参数用?占位
// 设置表名和标签
$stmt->setTableNameTags('表名', [
    // 支持格式同参数绑定
    [TDengine\TSDB_DATA_TYPE_INT, 36],
]);
// 绑定参数方法1
$stmt->bindParams(
    // [字段类型, 值]
    [TDengine\TSDB_DATA_TYPE_TIMESTAMP, $time1],
    [TDengine\TSDB_DATA_TYPE_INT, 36],
    [TDengine\TSDB_DATA_TYPE_FLOAT, 44.0],
);
// 绑定参数方法2
$stmt->bindParams([
    // ['type' => 字段类型, 'value' => 值]
    ['type' => TDengine\TSDB_DATA_TYPE_TIMESTAMP, 'value' => $time2],
    ['type' => TDengine\TSDB_DATA_TYPE_INT, 'value' => 36],
    ['type' => TDengine\TSDB_DATA_TYPE_FLOAT, 'value' => 44.0],
]);
// 执行 SQL,返回 Resource,使用方法同 query() 返回值
$resource = $stmt->execute();
// 获取 SQL 语句
$stmt->getSql();
// 获取连接对象
$stmt->getConnection();
// 关闭(一般不需要手动关闭,变量销毁时会自动释放)
$stmt->close();

字段类型:

参数名称 说明
TDengine\TSDB_DATA_TYPE_NULL null
TDengine\TSDB_DATA_TYPE_BOOL bool
TDengine\TSDB_DATA_TYPE_TINYINT tinyint
TDengine\TSDB_DATA_TYPE_SMALLINT smallint
TDengine\TSDB_DATA_TYPE_INT int
TDengine\TSDB_DATA_TYPE_BIGINT bigint
TDengine\TSDB_DATA_TYPE_FLOAT float
TDengine\TSDB_DATA_TYPE_DOUBLE double
TDengine\TSDB_DATA_TYPE_BINARY binary
TDengine\TSDB_DATA_TYPE_TIMESTAMP timestamp
TDengine\TSDB_DATA_TYPE_NCHAR nchar
TDengine\TSDB_DATA_TYPE_UTINYINT utinyint
TDengine\TSDB_DATA_TYPE_USMALLINT usmallint
TDengine\TSDB_DATA_TYPE_UINT uint
TDengine\TSDB_DATA_TYPE_UBIGINT ubigint
TDengine\TSDB_DATA_TYPE_JSON json
TDengine\TSDB_DATA_TYPE_VARBINARY varbinary
TDengine\TSDB_DATA_TYPE_DECIMAL decimal
TDengine\TSDB_DATA_TYPE_BLOB blob
TDengine\TSDB_DATA_TYPE_MEDIUMBLOB mediumblob
TDengine\TSDB_DATA_TYPE_BINARY binary
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].