在编码器点火器中设置 sql 参数值


Set sql parameter value in 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 参数值,我正在使用代码点火器。还有其他方法可以做到这一点吗?

绑定使你能够通过让系统为你组合查询来简化查询语法。请考虑以下示例:

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
$this->db->query($sql, array(3, 'live', 'Rick'));
查询中的

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

你应该试试这个

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)