什么是从CodeIgniter调用PostgreSQL函数的最佳方法

时间:2016-04-28 05:03:31

标签: postgresql function codeigniter parameters

我正在使用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函数,请分享它是如何完成的。

任何帮助将不胜感激,提前谢谢。

0 个答案:

没有答案