【发布时间】:2020-12-25 22:11:13
【问题描述】:
我有一个任务:检查$username 是否对标识符为$id 的记录进行了投票。为此,我需要检查 JSON 数组(位于“votes”单元格中)中的“upvote”字段是否包含用户名(即$username)。所以我写了这段代码(PostgreSQL DB):
$foo = R::getRow('SELECT "votes"::jsonb @> \'{"upvote":[":username"]}\'::jsonb AS "is_upvoted" FROM "pages" WHERE "id" = :id', [":id"=>$id,":username"=>$username];
问题是RedBeanPHP在替换占位符的时候是用单括号括起来的,但是PostgreSQL要求我把JSON数组的字段/值的名称用双引号括起来。
那么我怎样才能使 RB 不使用单引号包裹占位符呢?或者如何让占位符用双引号括起来?
【问题讨论】:
标签: sql postgresql pdo redbean