我正在使用CodeIgniter 3.0.6和PostgreSQL 9.4。我有一个带有4个参数的PostgreSQL函数,4个参数中有3个是字符串,1个是bit类型。我使用以下方法来调用我的函数
$query = "SELECT * FROM my_function('$param1', '$param2', '$param_bit', '$param4')";
return $this->db->query($query);
上述方法对我来说很好,但出于安全考虑,我决定使用查询绑定,因此值会自动转义。我尝试了以下方法
$query = "SELECT * FROM my_function(?, ?, ?, ?)";
return $this->db->query($query, $param1, $param2, $param_bit, $param4);
但是节目 错误:语法错误在或附近","第1行
所以我尝试了不同的方法,
$query = "SELECT * FROM my_function('?', '?', '?', '?')";
return $this->db->query($query, $param1, $param2, $param_bit, $param4);
但它显示没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
$query = "SELECT * FROM my_function(?::varchar, ?::varchar, ?::bit, ?::varchar)";
return $this->db->query($query, $param1, $param2, $param_bit, $param4);
但它显示ERROR:语法错误在或附近" ::"第1行:
甚至尝试使用引号和数据类型,但它们都不适用于我。
如果有人曾经使用过带有参数的PostgreSQL函数,请分享它是如何完成的。
任何帮助将不胜感激,提前谢谢。