用于PostgreSQL的DataTables ssp.class.php(服务器处理),添加数组支持吗?

时间:2018-08-12 15:46:23

标签: php sql database postgresql datatables

我为PostgreSQL转换了ssp.class.php,效果很好。但是,我需要为其添加ARRAY支持。

我希望有人可以给我一些指导/提示,以实现此目的的最佳方法,并且/或者在可能的情况下提供一些示例代码。我会很感激。

您可以在此处获取修改后的文件:ssp.class.pg.php

关于DataTables服务器端处理:https://datatables.net/examples/data_sources/server_side(带有示例)。

1 个答案:

答案 0 :(得分:0)

我参加聚会有点晚了,但是我在Google搜索答案时发现了这个问题,并想发表我的想法来帮助下一个可能偶然发现此问题的人。

注意:我正在使用引用的ssp.class.pg.php

我的解决方案-使用Heredoc

使用heredoc,您可以使用数组函数,内部和外部联接,子查询等更好地定义查询。

在我的示例中,我有一个PostgreSQL表,其中包含一个名为properties的jsonb列。我想从last_seen键中选择值。

使用Heredoc,我将表定义为查询,该查询将以列的形式返回用户最后一次看到的日期值。

$table = <<<EOT
(
SELECT
id, 
unique_id, 
properties->>'last_seen' as last_seen
FROM users
WHERE token = '$token'
) temp
EOT;

然后,我可以使用表查询返回的列为SSP PG类定义列。

$columns = array(
            array( 'db' => 'id', 'dt' => 'id' ),
            array( 'db' => 'unique_id', 'dt' => 'unique_id' ),
            array( 'db' => 'last_seen', 'dt' => 'last_seen' ));   

最后,我将使用定义的变量来调用简单函数。

$data_result = $ssp_pg->simple($request, $conn, $table, $primaryKey, $columns);