如何在codeigniter中将变量值传递给sql查询?

时间:2017-01-27 11:06:46

标签: php mysql codeigniter

是否可以在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);

我们可以在数据库查询中连接变量值吗?

此代码未给出任何错误,但也没有给出任何结果。

3 个答案:

答案 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());