Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将MySQL查询转换为codeigniter活动记录?_Mysql_Codeigniter - Fatal编程技术网

如何将MySQL查询转换为codeigniter活动记录?

如何将MySQL查询转换为codeigniter活动记录?,mysql,codeigniter,Mysql,Codeigniter,我是codeigniter的新手,我想将下面的MySQL查询转换为codeigniter活动记录查询 MySQL查询: CodeIgniter的整个API都有很好的文档,我强烈建议大家快速阅读。特别是关于您的问题,您应该看看活动记录文档和CodeIgniter,它们将为您提供使用API生成更安全查询的提示。这两个链接一起包含在CodeIgniter中构建查询所需的所有API调用 在最简单的层面上,您可以做到: $query = $this->db->query('select sev

我是codeigniter的新手,我想将下面的MySQL查询转换为codeigniter活动记录查询

MySQL查询:


CodeIgniter的整个API都有很好的文档,我强烈建议大家快速阅读。特别是关于您的问题,您应该看看活动记录文档和CodeIgniter,它们将为您提供使用API生成更安全查询的提示。这两个链接一起包含在CodeIgniter中构建查询所需的所有API调用

在最简单的层面上,您可以做到:

$query = $this->db->query('select sevadar_id, sevadar_name from tbl_sevadarmaster where sevadar_designation = 6 and sevadar_id not in (SELECT p_id FROM `tbl_events` WHERE program_id = 27 and event_date = 2014-07-06 and p_id is not null)');
但是您可能希望使用查询绑定(请参见页面底部)自动转义数据以生成更安全的查询,下面是使用API页面中的查询绑定的示例:

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; 
$this->db->query($sql, array(3, 'live', 'Rick'));
如果使用活动记录库,可以尝试:

$this->db->select('p_id');
$this->db->from('tbl_events');
$this->db->where('program_id', 27);
$this->db->where('event_date', '2014-07-06');
$this->db->where('p_id is not', null);
$where_clause = $this->db->get_compiled_select();

$this->db->select('sevadar_id, sevadar_name');
$this->db->from('tbl_sevadarmaster');
$this->db->where('sevadar_designation', 6);
$this->db->where("`sevadar_id` NOT IN ($where_clause)", NULL, FALSE);

我已经尝试过这个$query=$this->db->query'select sevadar_id,sevadar_name from tbl_sevadarmaster,sevadar_designation=6,sevadar_id not in select p_id from tbl_events,program_id=27,event_date=2014-07-06,p_id不为空';但查询选择表中的所有行,不知道如何选择?您是否测试了内部查询,它是否返回您想要的内容?如果是这样,您可以尝试将查询拆分为两个,并在基本查询中使用内部查询的结果来查看是否产生相同的结果,那么我们至少可以知道问题出在哪里。我已经在MySQL Workbench中测试了一个查询,它可以工作。我不明白为什么查询在codeya中不起作用,它现在正在工作,在event_date=2014-07-06中添加了两个反向COMA。塔克斯
$this->db->select('p_id');
$this->db->from('tbl_events');
$this->db->where('program_id', 27);
$this->db->where('event_date', '2014-07-06');
$this->db->where('p_id is not', null);
$where_clause = $this->db->get_compiled_select();

$this->db->select('sevadar_id, sevadar_name');
$this->db->from('tbl_sevadarmaster');
$this->db->where('sevadar_designation', 6);
$this->db->where("`sevadar_id` NOT IN ($where_clause)", NULL, FALSE);