我有以下SQL查询,我想使用“?”因为postgres 9.5语法需要它,所以问题在于默认情况下codeigniter使用该符号替换SQL查询中的值。
SELECT codigo, descr, ( select count(*) from "mi_tabla_2" where coddoc::jsonb ? codigo and coddep = '100' and codserie = '50' and codsubserie = '25' ) as check FROM "mi_tabla_1" WHERE std = TRUE
有什么建议吗?
答案 0 :(得分:0)
解决方案: 全部替换 '?' '?'以外的字符Postgres语法中必需的
$ this-> db-> bind_marker ='$'; //此行更改将字符替换为'$'
例如
$this->db->bind_marker = '$';
$sql = "select count(*) from mi_tabla_2 where coddoc::jsonb ? codigo and coddep = $ and codserie = $ and codsubserie = $";
$this->db->query($sql,array($param1,$param2,$param3));