在codeigniter中设置sql参数值

时间:2014-04-01 06:54:50

标签: php sql codeigniter

SELECT g.date,g.description,g.amount AS cash,0 AS cheque FROM generalledger AS g WHERE g.type="cash" AND (g.date=@gdate OR @gdate IS NULL)
UNION ALL
SELECT gg.date,gg.description,0 AS cash, gg.amount AS cheque FROM generalledger AS gg WHERE gg.type="cheque" AND (gg.date=@gdate OR @gdate IS NULL)

我的这个查询我想从php函数设置@gdate参数值,我使用codeigniter。还有其他办法吗?

2 个答案:

答案 0 :(得分:3)

通过让系统将查询放在一起,Bindings可以简化查询语法。请考虑以下示例:

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";

$this->db->query($sql, array(3, 'live', 'Rick'));

查询中的问号会自动替换为查询函数第二个参数中数组中的值。

答案 1 :(得分:0)

你应该试试这个

SELECT g.date,g.description,g.amount AS cash,0 AS cheque 
FROM generalledger AS g, (SELECT @gdate := NULL) as a
WHERE g.type="cash" AND (g.date=@gdate OR @gdate IS NULL)
UNION ALL
SELECT gg.date,gg.description,0 AS cash, gg.amount AS cheque 
FROM generalledger AS gg, (SELECT @gdate := NULL) as b
WHERE gg.type="cheque" AND (gg.date=@gadte OR @gdate IS NULL)