[英]How to run sql custom query in incinga2?
我是incinga2框架的新手,如何在incinga2中运行sql原始或自定义查询,如下所示
SELECT
`user`,
COUNT(0) as Total_Count,
MAX(range_count) Max_Range_Count
FROM (
SELECT
a.`user`,
a.change_time,
COUNT(0) range_count
FROM audit_log a
INNER JOIN audit_log b ON a.`user` = b.`user`
WHERE b.change_time BETWEEN a.change_time AND a.change_time + INTERVAL 30 MINUTE
GROUP BY a.`user`, a.change_time
) AS user_range_count
GROUP BY `user`
icinga2中的此数据库对象用于连接数据库并获取数据。 他们使用适配器,但pdo为空。 A可以在这里添加我的pdo吗? icniga2框架对吗?
ipl\Sql\Connection Object
(
[config:protected] => ipl\Sql\Config Object
(
[db] => mysql
[host] => localhost
[port] => 3306
[dbname] => auditlog
[username] => root
[password] =>
[charset] => utf8
[options] =>
[type] => db
[persistent] => 0
)
[pdo:protected] =>
[queryBuilder:protected] =>
[adapter:protected] => ipl\Sql\Adapter\Mysql Object
(
[quoteCharacter:protected] => Array
(
[0] => `
[1] => `
)
[escapeCharatcer:protected] => ``
[escapeCharacter:protected] => \"
[options:protected] => Array
(
[8] => 0
[20] =>
[3] => 2
[11] => 0
[17] =>
)
)
[pluginLoaders:protected] => Array
(
[adapter] => Array
(
[0] => ipl\Stdlib\Loader\AutoLoadingPluginLoader Object
(
[namespace:protected] => ipl\Sql\Adapter
[postfix:protected] =>
[uppercaseFirst:protected] => 1
)
)
)
)
您可以使用PDO 。
关于PDO入门的非常不错的文章。
$strQuery = "SELECT
`user`,
COUNT(0) as Total_Count,
MAX(range_count) Max_Range_Count
FROM (
SELECT
a.`user`,
a.change_time,
COUNT(0) range_count
FROM audit_log a
INNER JOIN audit_log b ON a.`user` = b.`user`
WHERE b.change_time BETWEEN a.change_time AND a.change_time + INTERVAL 30 MINUTE
GROUP BY a.`user`, a.change_time
) AS user_range_count
GROUP BY `user`";
foreach ($conn->query($strQuery) as $row) {
print_r($row);
}
首先在incinga中安装任何数据库资源模块,例如Icinga Web 2-IPL ,它将帮助我们在incinga中调用pdo查询,然后您可以检查其文档如何运行具有绑定参数的任何语句。 例:
use ipl\Sql\Select;
use PDO;
$stmt = 'Select * from table where id=?';
$id=1;
$execute=$this->dbConnection->fetchAll($stmt,[$id]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.