gpt4 book ai didi

mysql - 使用 CodeIgniter Active Record 语句

转载 作者:行者123 更新时间:2023-11-29 02:00:34 24 4
gpt4 key购买 nike

我正在寻找一种在 CodeIgniter 中使用 Active Record 来构建查询的方法。

我目前的代码是这样的:

$this->db->   like('responsible', $user->id);
$this->db->or_like('accountable', $user->id);
$this->db->or_like('consulted', $user->id);
$this->db->or_like('informed', $user->id);

// Get the tasks, but only with the correct start or end date
$tasks = $this->db->get_where('level_' . $this->config->item('answer_level'), array('date_end' => $offset, 'ccode' => $user->country));

// Check if tasks exist
if($tasks->num_rows() > 0){
// Tasks have been found that should have been finished!
echo $tasks->num_rows() . " tasks found for " . $user->first_name . " that should have been finished!\n";
$last_month_tasks = $tasks->result();
}

unset($tasks);

生成以下 SQL:

SELECT *
FROM (`level_3`)
WHERE `date_start` = -5
AND `ccode` = 'GB'
AND `responsible` LIKE '%5%'
OR `accountable` LIKE '%5%'
OR `consulted` LIKE '%5%'
OR `informed` LIKE '%5%'

但我需要它来生成此 SQL:

SELECT * 
FROM (`level_3`)
WHERE `date_start` = -5
AND `ccode` = 'GB'
AND (
`responsible` LIKE '%5%'
OR `accountable` LIKE '%5%'
OR `consulted` LIKE '%5%'
OR `informed` LIKE '%5%'
)

最佳答案

CodeIgniter 的 ActiveRecord 不支持查询和子句的嵌套。你必须像这样手动完成:

$this->db->select('*');
$this->db->from('level_' . $this->config->item('answer_level'));
$this->db->where(array('date_end' => $offset, 'ccode' => $user->country));
$this->db->where("(responsible LIKE '%5%' OR accountable LIKE '%5%' OR consulted LIKE '%5%' OR informed LIKE '%5%')");
$tasks = $this->db->get();

关于mysql - 使用 CodeIgniter Active Record 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16086152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com