如何使用Active Record插入子查询的值?

时间:2012-12-03 14:41:41

标签: php sql codeigniter codeigniter-2

我使用Active记录将值插入DB。

我使用自定义查询进行的所有其他类型的查询,因为它更容易,但活动记录插入非常好。

所以我有这段代码:

    $comment = array (
'point_id' => $object->id,
'title' => $object->title,
'comment' => $object->comment,
'author_name' => $object->author_name,
'is_temp' => 0,
'parent_id' => $object->parent_id

);
return $this->db->insert('comments', $comment);

现在我希望能够将is_temp设置为子查询结果,即:

(SELECT allow_user_comments from subjects where id='somevalue')

如何实现这一目标?

我希望避免使用第三方库。

2 个答案:

答案 0 :(得分:2)

嗯,我怀疑这是你应该怎么做的事实,但这不是CI的全部内容吗?

这就是我如何使用它(从$ comment数组中删除is_temp):

$this->db->set($comment);
$this->db->set('is_temp',
'(SELECT allow_user_comments from subjects where id='.$subject_id.')',FALSE);
$this->db->insert('comments');  

答案 1 :(得分:0)

随意使用https://github.com/NTICompass/CodeIgniter-Subqueries。我用过它,它的工作原理!希望它会有用。 : - )