2011-08-08 145 views
0

我使用笨我的申请,我有点困惑疑问,我写了一些疑问这样的:活动记录和使用CodeIgniter

public function checkemail($email) { 
    $this->db->select('email')->from('user')->where('email', $email); 
} 

但是笨的手册中(http://codeigniter.com/user_guide/database/active_record.html)他们谈论$这 - > DB->的get(); 我应该在$ this-> db-> select查询之后添加它吗?

我的功能正常工作...

什么时候应该使用get()?

谢谢你!

回答

3

是的,您需要在其他方法之后运行get()select(),from()where()将其各自的语句添加到查询中,并且get()实际上运行查询并将结果作为对象返回。

在这种情况下,您可以将其添加到链的末尾。

public function checkemail($email) { 
    $this->db 
     ->select('email') 
     ->from('user') 
     ->where('email', $email) 
     ->get(); 
} 

如果您希望事后处理结果,请确保将其分配给变量。

$user = $this->db 
    ->select('email') 
    ->from('user') 
    ->where('email', $email) 
    ->get(); 
+0

感谢您的回答。但是,你知道为什么我的查询无论如何不执行get()?我称之为: $ this-> s_model-> checkemail – Tommy

+0

嗯,我甚至没有意识到查询会在没有调用get()方法的情况下运行。它是否仍然返回可以运行查询结果方法的对象? (即'result()','result_array()'等) –

+0

是的,我的意思是我之后调用它,它的工作原理: if($ this-> db-> count_all_results()== 0){.. 。} – Tommy

1

如果使用get("table_name")那么你并不需要使用from("table_name")。这只是一个看似不同的语法。

user guide开始,它一直在底部显示:如前所示,查询的FROM部分可以在$ this-> db-> get()函数中指定,因此可以使用任何一种方法喜欢。