未验证 提交 46ffb6cf 编写于 作者: weixin_47267244's avatar weixin_47267244 提交者: GitHub

docs: update PHP doc (#12429)

* Update php doc

* Fix
上级 99a81b0e
...@@ -40,7 +40,7 @@ TDengine 是一款高性能、分布式、支持 SQL 的时序数据库,其核 ...@@ -40,7 +40,7 @@ TDengine 是一款高性能、分布式、支持 SQL 的时序数据库,其核
- **零管理**:安装、集群几秒搞定,无任何依赖,不用分库分表,系统运行状态监测能与 Grafana 或其他运维工具无缝集成。 - **零管理**:安装、集群几秒搞定,无任何依赖,不用分库分表,系统运行状态监测能与 Grafana 或其他运维工具无缝集成。
- **零学习成本**:采用 SQL 查询语言,支持 Python, Java, C/C++, Go, Rust, Node.js 等多种编程语言,与 MySQL 相似,零学习成本。 - **零学习成本**:采用 SQL 查询语言,支持 Python, Java, C/C++, Go, Rust, Node.js, PHP 等多种编程语言,与 MySQL 相似,零学习成本。
- **无缝集成**:不用一行代码,即可与 Telegraf, Grafana, EMQX, Prometheus, StatsD, collectd, Matlab, R 等第三方工具无缝集成。 - **无缝集成**:不用一行代码,即可与 Telegraf, Grafana, EMQX, Prometheus, StatsD, collectd, Matlab, R 等第三方工具无缝集成。
......
```php title="原生连接"
{{#include docs-examples/php/connect.php}}
```
...@@ -13,12 +13,13 @@ import ConnPythonNative from "./_connect_python.mdx"; ...@@ -13,12 +13,13 @@ import ConnPythonNative from "./_connect_python.mdx";
import ConnCSNative from "./_connect_cs.mdx"; import ConnCSNative from "./_connect_cs.mdx";
import ConnC from "./_connect_c.mdx"; import ConnC from "./_connect_c.mdx";
import ConnR from "./_connect_r.mdx"; import ConnR from "./_connect_r.mdx";
import ConnPHP from "./_connect_php.mdx";
import InstallOnWindows from "../../14-reference/03-connector/_linux_install.mdx"; import InstallOnWindows from "../../14-reference/03-connector/_linux_install.mdx";
import InstallOnLinux from "../../14-reference/03-connector/_windows_install.mdx"; import InstallOnLinux from "../../14-reference/03-connector/_windows_install.mdx";
import VerifyLinux from "../../14-reference/03-connector/_verify_linux.mdx"; import VerifyLinux from "../../14-reference/03-connector/_verify_linux.mdx";
import VerifyWindows from "../../14-reference/03-connector/_verify_windows.mdx"; import VerifyWindows from "../../14-reference/03-connector/_verify_windows.mdx";
TDengine 提供了丰富的应用程序开发接口,为了便于用户快速开发自己的应用,TDengine 支持了多种编程语言的连接器,其中官方连接器包括支持 C/C++、Java、Python、Go、Node.js、C# 和 Rust 的连接器。这些连接器支持使用原生接口(taosc)和 REST 接口(部分语言暂不支持)连接 TDengine 集群。社区开发者也贡献了多个非官方连接器,例如 ADO.NET 连接器、Lua 连接器和 PHP 连接器。 TDengine 提供了丰富的应用程序开发接口,为了便于用户快速开发自己的应用,TDengine 支持了多种编程语言的连接器,其中官方连接器包括支持 C/C++、Java、Python、Go、Node.js、C#、Rust 和 PHP 的连接器。这些连接器支持使用原生接口(taosc)和 REST 接口(部分语言暂不支持)连接 TDengine 集群。社区开发者也贡献了多个非官方连接器,例如 ADO.NET 连接器、Lua 连接器和 PHP 连接器。
## 连接器建立连接的方式 ## 连接器建立连接的方式
...@@ -200,6 +201,46 @@ install.packages("RJDBC") ...@@ -200,6 +201,46 @@ install.packages("RJDBC")
如果已经安装了 TDengine 服务端软件或 TDengine 客户端驱动 taosc, 那么已经安装了 C 连接器,无需额外操作。 如果已经安装了 TDengine 服务端软件或 TDengine 客户端驱动 taosc, 那么已经安装了 C 连接器,无需额外操作。
<br/> <br/>
</TabItem>
<TabItem label="PHP" value="php">
**下载代码并解压:**
```shell
curl -L -o php-tdengine.tar.gz https://github.com/Yurunsoft/php-tdengine/archive/refs/tags/v1.0.2.tar.gz \
&& mkdir php-tdengine \
&& tar -xzf php-tdengine.tar.gz -C php-tdengine --strip-components=1
```
> 版本 `v1.0.0` 可替换为任意更新的版本,可在 Release 中查看最新版本。
**非 Swoole 环境:**
```shell
phpize && ./configure && make -j && make install
```
**手动指定 tdengine 目录:**
```shell
phpize && ./configure --with-tdengine-dir=/usr/local/Cellar/tdengine/2.4.0.0 && make -j && make install
```
> `--with-tdengine-dir=` 后跟上 tdengine 目录。
> 适用于默认找不到的情况,或者 MacOS 系统用户。
**Swoole 环境:**
```shell
phpize && ./configure --enable-swoole && make -j && make install
```
**启用扩展:**
方法一:在 `php.ini` 中加入 `extension=tdengine`
方法二:运行带参数 `php -dextension=tdengine test.php
</TabItem> </TabItem>
</Tabs> </Tabs>
...@@ -232,6 +273,9 @@ install.packages("RJDBC") ...@@ -232,6 +273,9 @@ install.packages("RJDBC")
<TabItem label="C" value="c"> <TabItem label="C" value="c">
<ConnC /> <ConnC />
</TabItem> </TabItem>
<TabItem label="PHP" value="php">
<ConnPHP />
</TabItem>
</Tabs> </Tabs>
:::tip :::tip
......
...@@ -18,6 +18,8 @@ import CsSQL from "./_cs_sql.mdx"; ...@@ -18,6 +18,8 @@ import CsSQL from "./_cs_sql.mdx";
import CsStmt from "./_cs_stmt.mdx"; import CsStmt from "./_cs_stmt.mdx";
import CSQL from "./_c_sql.mdx"; import CSQL from "./_c_sql.mdx";
import CStmt from "./_c_stmt.mdx"; import CStmt from "./_c_stmt.mdx";
import PhpSQL from "./_php_sql.mdx";
import PhpStmt from "./_php_stmt.mdx";
## SQL 写入简介 ## SQL 写入简介
...@@ -88,6 +90,9 @@ INSERT INTO d1001 VALUES (1538548685000, 10.3, 219, 0.31) (1538548695000, 12.6, ...@@ -88,6 +90,9 @@ INSERT INTO d1001 VALUES (1538548685000, 10.3, 219, 0.31) (1538548695000, 12.6,
<TabItem label="C" value="c"> <TabItem label="C" value="c">
<CSQL /> <CSQL />
</TabItem> </TabItem>
<TabItem label="PHP" value="php">
<PhpSQL />
</TabItem>
</Tabs> </Tabs>
:::note :::note
...@@ -125,5 +130,8 @@ TDengine 也提供了支持参数绑定的 Prepare API,与 MySQL 类似,这 ...@@ -125,5 +130,8 @@ TDengine 也提供了支持参数绑定的 Prepare API,与 MySQL 类似,这
<TabItem label="C" value="c"> <TabItem label="C" value="c">
<CStmt /> <CStmt />
</TabItem> </TabItem>
<TabItem label="PHP" value="php">
<PhpStmt />
</TabItem>
</Tabs> </Tabs>
```php
{{#include docs-examples/php/insert.php}}
```
```php
{{#include docs-examples/php/insert_stmt.php}}
```
```go
{{#include docs-examples/php/query.php}}
```
...@@ -13,6 +13,7 @@ import RustQuery from "./_rust.mdx"; ...@@ -13,6 +13,7 @@ import RustQuery from "./_rust.mdx";
import NodeQuery from "./_js.mdx"; import NodeQuery from "./_js.mdx";
import CsQuery from "./_cs.mdx"; import CsQuery from "./_cs.mdx";
import CQuery from "./_c.mdx"; import CQuery from "./_c.mdx";
import PhpQuery from "./_php.mdx";
import PyAsync from "./_py_async.mdx"; import PyAsync from "./_py_async.mdx";
import NodeAsync from "./_js_async.mdx"; import NodeAsync from "./_js_async.mdx";
import CsAsync from "./_cs_async.mdx"; import CsAsync from "./_cs_async.mdx";
...@@ -150,6 +151,9 @@ Query OK, 5 row(s) in set (0.001521s) ...@@ -150,6 +151,9 @@ Query OK, 5 row(s) in set (0.001521s)
<TabItem label="C" value="c"> <TabItem label="C" value="c">
<CQuery /> <CQuery />
</TabItem> </TabItem>
<TabItem label="PHP" value="php">
<PhpQuery />
</TabItem>
</Tabs> </Tabs>
:::note :::note
......
...@@ -14,7 +14,7 @@ title: OpenTSDB 应用迁移到 TDengine 的最佳实践 ...@@ -14,7 +14,7 @@ title: OpenTSDB 应用迁移到 TDengine 的最佳实践
- 安装部署非常简单,单一安装包完成安装部署,不依赖其他的第三方软件,整个安装部署过程秒级搞定; - 安装部署非常简单,单一安装包完成安装部署,不依赖其他的第三方软件,整个安装部署过程秒级搞定;
- 提供的内建函数覆盖 OpenTSDB 支持的全部查询函数,还支持更多的时序数据查询函数、标量函数及聚合函数,支持多种时间窗口聚合、连接查询、表达式运算、多种分组聚合、用户定义排序、以及用户定义函数等高级查询功能。采用类 SQL 的语法规则,更加简单易学,基本上没有学习成本。 - 提供的内建函数覆盖 OpenTSDB 支持的全部查询函数,还支持更多的时序数据查询函数、标量函数及聚合函数,支持多种时间窗口聚合、连接查询、表达式运算、多种分组聚合、用户定义排序、以及用户定义函数等高级查询功能。采用类 SQL 的语法规则,更加简单易学,基本上没有学习成本。
- 支持多达 128 个标签,标签总长度可达到 16 KB; - 支持多达 128 个标签,标签总长度可达到 16 KB;
- 除 REST 接口之外,还提供 Java、Python、C、Rust、Go 等多种语言的接口,支持 JDBC 等多种企业级标准连接器协议。 - 除 REST 接口之外,还提供 Java、Python、C、Rust、Go、PHP 等多种语言的接口,支持 JDBC 等多种企业级标准连接器协议。
如果我们将原本运行在 OpenTSDB 上的应用迁移到 TDengine 上,不仅可以有效地降低计算和存储资源的占用、减少部署服务器的规模,还能够极大减少运行维护的成本的输出,让运维管理工作更简单、更轻松,大幅降低总拥有成本。与 OpenTSDB 一样,TDengine 也已经进行了开源,不同的是,除了单机版,后者还实现了集群版开源,被厂商绑定的顾虑一扫而空。 如果我们将原本运行在 OpenTSDB 上的应用迁移到 TDengine 上,不仅可以有效地降低计算和存储资源的占用、减少部署服务器的规模,还能够极大减少运行维护的成本的输出,让运维管理工作更简单、更轻松,大幅降低总拥有成本。与 OpenTSDB 一样,TDengine 也已经进行了开源,不同的是,除了单机版,后者还实现了集群版开源,被厂商绑定的顾虑一扫而空。
......
<?php
use TDengine\Connection;
use TDengine\Exception\TDengineException;
try {
// 实例化
$host = 'localhost';
$port = 6030;
$username = 'root';
$password = 'taosdata';
$dbname = null;
$connection = new Connection($host, $port, $username, $password, $dbname);
// 连接
$connection->connect();
} catch (TDengineException $e) {
// 连接失败捕获异常
throw $e;
}
<?php
use TDengine\Connection;
use TDengine\Exception\TDengineException;
try {
// 实例化
$host = 'localhost';
$port = 6030;
$username = 'root';
$password = 'taosdata';
$dbname = 'power';
$connection = new Connection($host, $port, $username, $password, $dbname);
// 连接
$connection->connect();
// 插入
$connection->query('CREATE DATABASE if not exists power');
$connection->query('CREATE STABLE if not exists meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64), groupId INT)');
$resource = $connection->query(<<<'SQL'
INSERT INTO power.d1001 USING power.meters TAGS(Beijing.Chaoyang, 2) VALUES ('2018-10-03 14:38:05.000', 10.30000, 219, 0.31000) ('2018-10-03 14:38:15.000', 12.60000, 218, 0.33000) ('2018-10-03 14:38:16.800', 12.30000, 221, 0.31000)
power.d1002 USING power.meters TAGS(Beijing.Chaoyang, 3) VALUES ('2018-10-03 14:38:16.650', 10.30000, 218, 0.25000)
power.d1003 USING power.meters TAGS(Beijing.Haidian, 2) VALUES ('2018-10-03 14:38:05.500', 11.80000, 221, 0.28000) ('2018-10-03 14:38:16.600', 13.40000, 223, 0.29000)
power.d1004 USING power.meters TAGS(Beijing.Haidian, 3) VALUES ('2018-10-03 14:38:05.000', 10.80000, 223, 0.29000) ('2018-10-03 14:38:06.500', 11.50000, 221, 0.35000)
SQL);
// 影响行数
var_dump($resource->affectedRows());
} catch (TDengineException $e) {
// 捕获异常
throw $e;
}
<?php
use TDengine\Connection;
use TDengine\Exception\TDengineException;
try {
// 实例化
$host = 'localhost';
$port = 6030;
$username = 'root';
$password = 'taosdata';
$dbname = 'power';
$connection = new Connection($host, $port, $username, $password, $dbname);
// 连接
$connection->connect();
// 插入
$connection->query('CREATE DATABASE if not exists power');
$connection->query('CREATE STABLE if not exists meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64), groupId INT)');
$stmt = $connection->prepare('INSERT INTO ? USING meters TAGS(?, ?) VALUES(?, ?, ?, ?)');
// 设置表名和标签
$stmt->setTableNameTags('d1001', [
// 支持格式同参数绑定
[TDengine\TSDB_DATA_TYPE_BINARY, 'Beijing.Chaoyang'],
[TDengine\TSDB_DATA_TYPE_INT, 2],
]);
$stmt->bindParams([
[TDengine\TSDB_DATA_TYPE_TIMESTAMP, 1648432611249],
[TDengine\TSDB_DATA_TYPE_FLOAT, 10.3],
[TDengine\TSDB_DATA_TYPE_INT, 219],
[TDengine\TSDB_DATA_TYPE_FLOAT, 0.31],
]);
$stmt->bindParams([
[TDengine\TSDB_DATA_TYPE_TIMESTAMP, 1648432611749],
[TDengine\TSDB_DATA_TYPE_FLOAT, 12.6],
[TDengine\TSDB_DATA_TYPE_INT, 218],
[TDengine\TSDB_DATA_TYPE_FLOAT, 0.33],
]);
$resource = $stmt->execute();
// 影响行数
var_dump($resource->affectedRows());
} catch (TDengineException $e) {
// 捕获异常
throw $e;
}
<?php
use TDengine\Connection;
use TDengine\Exception\TDengineException;
try {
// 实例化
$host = 'localhost';
$port = 6030;
$username = 'root';
$password = 'taosdata';
$dbname = 'power';
$connection = new Connection($host, $port, $username, $password, $dbname);
// 连接
$connection->connect();
$resource = $connection->query('SELECT ts, current FROM meters LIMIT 2');
var_dump($resource->fetch());
} catch (TDengineException $e) {
// 捕获异常
throw $e;
}
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
**下载代码并解压:** **下载代码并解压:**
```shell ```shell
curl -L -o php-tdengine.tar.gz https://github.com/Yurunsoft/php-tdengine/archive/refs/tags/v1.0.0.tar.gz \ curl -L -o php-tdengine.tar.gz https://github.com/Yurunsoft/php-tdengine/archive/refs/tags/v1.0.2.tar.gz \
&& mkdir php-tdengine \ && mkdir php-tdengine \
&& tar -xzf php-tdengine.tar.gz -C php-tdengine --strip-components=1 && tar -xzf php-tdengine.tar.gz -C php-tdengine --strip-components=1
``` ```
...@@ -95,7 +95,7 @@ $db = null; ...@@ -95,7 +95,7 @@ $db = null;
// 实例化 // 实例化
$connection = new Connection($host, $port, $user, $pass, $db); $connection = new Connection($host, $port, $user, $pass, $db);
// 连接 // 连接
$connection->connection(); $connection->connect();
// 获取连接参数 // 获取连接参数
$connection->getHost(); $connection->getHost();
$connection->getPort(); $connection->getPort();
...@@ -140,6 +140,11 @@ $resource->close(); ...@@ -140,6 +140,11 @@ $resource->close();
```php ```php
// 查询 // 查询
$stmt = $connection->prepare($sql); // 支持查询和插入,参数用?占位 $stmt = $connection->prepare($sql); // 支持查询和插入,参数用?占位
// 设置表名和标签
$stmt->setTableNameTags('表名', [
// 支持格式同参数绑定
[TDengine\TSDB_DATA_TYPE_INT, 36],
]);
// 绑定参数方法1 // 绑定参数方法1
$stmt->bindParams( $stmt->bindParams(
// [字段类型, 值] // [字段类型, 值]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册