如何在codeigniter中更改mysql查询

时间:2014-03-27 05:42:09

标签: php mysql sql codeigniter

如何在codeigniter中更改此mysql查询?

此查询有效:

/$query = $this->db->query("SELECT * FROM user_registration WHERE Ins_ID=(SELECT Ins_ID FROM login WHERE User_Name='$User_Name')");

我想将其更改为comment.thank you下的格式。

 public function view($User_Name)
     {
         if($User_Name != NULL)
         {
            //$query = $this->db->query("SELECT * FROM user_registration WHERE Ins_ID=(SELECT Ins_ID FROM login WHERE User_Name='$User_Name')"); //edited

             $Ins_ID=$this->db->query("SELECT Ins_ID FROM login WHERE User_Name='$User_Name'");
             $this -> db -> select('*');
             $this -> db -> from('user_registration');
             $this -> db -> where('Ins_ID',$Ins_ID);
             $query = $this -> db -> get();

             return $query->row();
         }

     }

3 个答案:

答案 0 :(得分:2)

您需要加入表格,不要使用子查询

$this->db->select('r.*');
$this->db->from('user_registration r');
$this->db->join('login l','r.Ins_ID=l.Ins_ID')
$this->db-> where('l.User_Name',$User_Name);
$query =$this->db->get();

Active Record

答案 1 :(得分:0)

尝试:

$this->db->where("Ins_ID=(SELECT Ins_ID FROM login WHERE User_Name='$User_Name')");
$this->db->get('user_registration');

答案 2 :(得分:0)

http://ellislab.com/codeigniter/user-guide/database/active_record.html 使用活动记录如下

         $this->db->where('Ins_ID',$Ins_ID)
                ->get('user_registration');

请注意,您可以链接调用(where(),select(),join()),这看起来更好,并保存几行代码。 如果您选择所有列,则无需使用$ this-> db-> select('user_registration。*');等等 您可以在 - > get()中传递表格,因此如果您不需要,也不需要使用 - > from()。