|
一、通过pypclickhouse插件连接ck数据库
博主用的1.1.2因为我们公司使用的php5点几版本,这是最高支持 插件地址:https://github.com/smi2/phpClickHouse/tree/e27b04d482e9922df8bf1ea0880bf2985d2e06d0
使用默认配置去连接 clickhouse 错误:Fatal error: Call to undefined function curl_init() 解决:在php.ini 文件中 将 extension=php_curl.dll 前的分号去掉 错误:Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl.dll 因为刚才php.ini文件引入的 php_curl.dll 文件系统默认在 ‘C:/php/ext/’下去找 两种解决方式,把该文件拷贝过去,或者php.ini中配置查找路径: ; extension_dir = "./" ; On windows: extension_dir = "ext" #将此行前面分号去掉
1 <?php
2 include_once __DIR__ . '/third_party/phpclickhouse1.1.2/include.php';
3
4 $config = [
5 'host' => '10.222.1.213',
6 'port' => '8123',
7 'username' => 'sangfor',
8 'password' => 'sangfor123'
9 ];
10 $tb_name = 'netflow';
11
12
13 $db_conn = new ClickHouseDB\Client($config);
14 $db_conn->database('test');
15 $db_conn->setTimeout(1.5); // 1500 ms
16 $db_conn->setTimeout(10); // 10 seconds
17 $db_conn->setConnectTimeOut(5); // 5 seconds
18
19 $db_conn->ping();
20
21 function zifll($param,$char='0')
22 {
23 if(!is_string($param))
24 {
25 $param = (string)$param;
26 }
27 if(strlen($param)<2)
28 {
29 $param = "0".$param;
30 }
31 else if(strlen($param)>2)
32 {
33 $param = substr($param,strlen($param)-2);
34 }
35 return $param;
36 }
37
38 $sql = "update {$tb_name} set record_time=";
39
40 $param = array(
41 'time_range'=>"2020-05-03 00:00:00|2020-07-07 00:00:00",
42 'src_ip'=>"192.168.0.1",
43 'src_port'=>8080,
44 'dst_ip'=>'',
45 'dst_port'=>null,
46 'page'=>0
47 );
48
49 function get_query_sql($param)
50 {
51 $query_sql = "select * from test.netflow ";
52 if(empty($param)||!is_array($param))
53 {
54 echo "No paramter!";
55 exit();
56 }
57 $time_rage = explode("|",$param["time_range"]);
58 if($time_rage[0])
59 {
60 $query_sql .= "where ";
61 $query_sql .= "record_time > '{$time_rage[0]}' ";
62 }
63 if($time_rage[1])
64 {
65 $query_sql .= "and ";
66 $query_sql .= "record_time < '{$time_rage[1]}' ";
67 }
68 // array_splice($param,"time_range");
69 unset($param["time_range"]);
70 foreach($param as $key=>$value)
71 {
72 if(isset($param[$key]))
73 {
74 if ($key=="page"){
75 $offset = $value==0?"0":(string)$value*20;
76 $query_sql .= "limit 20 offset {$offset}";
77 }
78 else if($value)
79 {
80 $query_sql .= "and ";
81 if(is_string($value))
82 {
83 $query_sql .= "{$key} = '{$value}' ";
84 }
85 else
86 {
87 $query_sql .= "{$key} = {$value} ";
88 }
89 }
90
91
92 }
93 }
94 // $query_sql = $query_sql.trim();
95 $query_sql = trim($query_sql);
96 $query_sql .= ";";
97 return $query_sql;
98 }
99
100 $result = $db_conn->select(get_query_sql($param));
101 $cur_info_all = $result->rawData();
102 $cur_data = $cur_info_all["data"];
103 echo(json_encode($cur_data));
104 ?>
人生还有意义。那一定是还在找存在的理由
来源:https://www.cnblogs.com/shiqi17/p/12827926.html |