2012-12-03 70 views
1

我使用活動記錄將值插入數據庫。如何使用Active Record插入子查詢的值?

所有其他類型的查詢我做自定義查詢,因爲它更容易,但活動記錄插入是相當不錯的。

所以我有這樣的代碼:

$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') 

一個怎樣achive呢?

我曾希望避免使用第三方庫。

+0

只是一個音符。 Codeigniter沒有活動記錄。它只有查詢生成器。 – itachi

+0

@itachi不正確。見本頁第一段 - http://ellislab.com/codeigniter/user-guide/database/active_record.html – Catfish

+0

相關,可能對你有用 - http://stackoverflow.com/questions/6047149/subquery- in-codeigniter-active-record – Shauna

回答

2

嗯,我懷疑這就是你應該這樣做的事實,但不是所有關於這個的CI?

這是我如何得到它的工作(從$評論陣列移除is_temp ofcourse):

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

隨意使用https://github.com/NTICompass/CodeIgniter-Subqueries。我已經使用它,它的工作原理!希望它會有用。 :-)

+0

我希望避免使用圖書館,但謝謝。 –

+0

沒關係。自從您設置爲「FALSE」後,請勿忘記使用'$ this-> db-> escape($ subject_id)''轉義'$ subject_id'。祝你好運! – AMYunus

相關問題