如何在PHP中选择postgre视图(使用session_user变量)?

时间:2013-12-27 00:43:04

标签: php codeigniter postgresql session view

我需要在postgresql视图中使用php session_user数据。怎么可能?

我在db。中创建了带有session_user变量的postgre视图。

CREATE OR REPLACE VIEW test_view AS 
SELECT T.name, TT.age
FROM test1 T INNER JOIN test2 TT ON T.client_id=TT.client_id
WHERE T.user::text=session_user::text;

我拥有CodeIgnited框架的PHP代码。我用PHP创建了会话:

$data = array(
 'client_id' => $row->client_id,
 'user' => $row->user,
 'validated' => true
);
$this->session->set_userdata($data);

现在我尝试选择该视图:

$result = $this->db->get('test_view');

但它不起作用。查询返回0行。

我做错了什么? (我知道我可以创建函数或只选择查询,但我必须以这种方式执行此操作 - 使用视图)。

1 个答案:

答案 0 :(得分:0)

视图定义中的

session_user::text包含Postgres的会话用户(即您连接的数据库用户),而不是app / php会话中的用户。

删除定义的where部分,并将其作为您在php中运行的查询的一部分添加 - 当然,使用app / php会话用户。