是否可以在codeigniter中传递mysql查询中的变量值?
我想从数据库中选择ID与我的会话ID相同的记录。
我的代码是:
$this->db->select('*'); // <-- There is never any reason to write this line!
$this->db->from('products');
$this->db->where('id_admin = (SELECT id_admin FROM users WHERE id='.$this->session->userdata('user_id').')', NULL, TRUE);
我们可以在数据库查询中连接变量值吗?
此代码未给出任何错误,但也没有给出任何结果。
答案 0 :(得分:2)
在活动记录中使用联接
$this->db->select('p.*');
$this->db->from('products as p');
$this->db->join('users','p.id_admin=users.id');
$this->db->where('users.id',$this->session->userdata('user_id'),false);
$query = $this->db->get();
答案 1 :(得分:1)
尝试这样..使用两个表加入。
<?php
$this->db->select('products.*');
$this->db->from('products');
$this->db->join('users','products.id_admin=users.id_admin');
$this->db->where('users.id',$this->session->userdata('user_id'));
$query = $this->db->get();
print_r($query->result_array());//your array of records
答案 2 :(得分:1)
如何根据Active Records的文档在CI中编写JOIN查询的示例参考。
$article_id = $this->input->post('article_id');
$this->db->select('*');
$this->db->from('articles');
$this->db->join('news', 'news.id = articles.id');
$this->db->where('articles.id',$article_id);
$query = $this->db->get();
上面的代码将按如下方式生成查询以供执行。
SELECT * FROM articles JOIN news ON news.id = articles.id WHERE articles.id='10'
如果传递的id为10
要查看已执行查询的结果,您必须执行以下代码。
print_r($query->result());