我在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行。
我做错了什么? (我知道我可以创建函数或只选择查询,但我必须以这种方式执行此操作 - 使用视图)。
答案 0 :(得分:0)
session_user::text
包含Postgres的会话用户(即您连接的数据库用户),而不是app / php会话中的用户。
删除定义的where部分,并将其作为您在php中运行的查询的一部分添加 - 当然,使用app / php会话用户。