在find中有条件的cakephp
有人能帮助我,并告诉我如何在cakephp中插入BEETWEN子句吗 我的代码示例:在find中有条件的cakephp,cakephp,find,having,Cakephp,Find,Having,有人能帮助我,并告诉我如何在cakephp中插入BEETWEN子句吗 我的代码示例: $zaduzenja = $this->Zaduzenja->find('all',array( 'conditions' => array( 'Zaduzenja.placeno' => 0 ), 'fields' => array('Zaduzenja.obvezni
$zaduzenja = $this->Zaduzenja->find('all',array(
'conditions' => array(
'Zaduzenja.placeno' => 0 ),
'fields' => array('Zaduzenja.obveznici_id', 'SUM(Zaduzenja.zaduzenje) as dug'),
'group' => 'Zaduzenja.obveznici_id HAVING array(dug BETWEEN ? AND ? => array('.$iznosOd,$iznosDo)'
));
但这不起作用,我只希望计算列“dug”检查dug>=$temp 1和dugHi是否更改您的查询,如下所示:
$zaduzenja = $this->Zaduzenja->find('all',array(
'conditions' => array(
'Zaduzenja.placeno' => 0
),
'fields' => array(
'Zaduzenja.obveznici_id',
'SUM(Zaduzenja.zaduzenje) as dug'
),
'group' => 'Zaduzenja.obveznici_id having dug Between '.$temp_1.' and '.$temp2
));
Iinjoy为什么不干脆这样
$db = $this->Zaduzenja->getDataSource();
$iznosOd = $db->value($iznosOd, 'double'); // quotes and escapes input to avoid SQL injections
$iznosDo = $db->value($iznosDo, 'double'); // ditto
$zaduzenja = $this->Zaduzenja->find(
'all',
array(
'conditions' => array(
'Zaduzenja.placeno' => 0
),
'fields' => array(
'Zaduzenja.obveznici_id',
'SUM(Zaduzenja.zaduzenje) as dug'
),
'group' => "Zaduzenja.obveznici_id HAVING dug BETWEEN $iznosOd AND $iznosDo"
)
);
我改变了,但我得到了这个错误:一般错误:1滥用聚合:SUM()我想我必须在“group”中使用与arilias答案中相同的内容…@ndm你不能在上面的查询中进行SQL注入,因为每次你在$tem_1或$temp_2中放入某些内容,它将在group语句下出现…这就是CakePHP数据库包装器的美妙之处…无论如何,感谢您的启发…如果操作正确,它是美丽的,但这是错误的方式,当然您可以在其中插入SQL,只需尝试一下。我如何能像iznosOd iznosDo这样再添加一个参数日期,DateOd DateDo??如何添加一个以上的参数日期,如iznosOd iznosDo,DateOd DateDo??您想在哪里添加这些参数?处于何处状态或有状态。请更好地解释,我必须检查日期,我只需要SUM(Dug),其中日期在正确的范围内,实际上我必须在where条件中添加参数?…我们每天的SQL注入漏洞剂量。请正确。
SUM(Zaduzenja.zaduzenje)为dug
=>这应该是一个虚拟字段!看见