将CodeIgniter模型中的数组数据用作SQL?

时间:2013-07-10 23:33:43

标签: codeigniter

在我的控制器中,我使用以下代码将数据传递给模型:

$data = array(
    'gid'   =>  $this->input->post('gid'),
    'name'  =>  $this->input->post('name'),
    'pic'   =>  $this->input->post('pic'),
    'link'  =>  $this->input->post('link')
);  
var_dump($data);
$this->Login_model->insert_entry($data);

在我的模型中,我想要做的是使用gid值作为SQL语句的一部分,如下所示:

$get_gid = $this->db->query('SELECT * FROM users WHERE gid = $gid');

显然这不起作用,所以我只是想知道如何从$ data中获取gid并在我的SQL语句中使用它?

使用

进行测试
$get_gid = $this->db->where('gid', $data['gid'])->get('users');
print_r($get_gid);

但是输出是:

  

CI_DB_mysql_result对象([conn_id] =>资源ID#30 [result_id]   =>资源ID#33 [result_array] => Array()[result_object] => Array()[custom_result_object] => Array()[current_row] => 0   [num_rows] => 0 [row_data] => )

4 个答案:

答案 0 :(得分:0)

您是否尝试过gid = $ data ['gid']

我假设您的模型方法如下所示:

insert_entry($data)
{
     here active record or query...
 }

如果是,请尝试显示查询以查看$ data ['gid']是否可见

你可以试试

$this->db->get_compiled_select();

或在查询运行后

$this->db->last_query();

答案 1 :(得分:0)

尝试这种方式:

$data = array(
 'gid'   =>  $this->input->post('gid'),
 'name'  =>  $this->input->post('name'),
 'pic'   =>  $this->input->post('pic'),
 'link'  =>  $this->input->post('link')

);

$gid = $data['gid'];

$this->db->where('gid',$gid);
$this->db->from('users');
$query = $this->db->get(); 
if($query)
{
    //you can return query or you can do other operations here like insert the array data
    //$this->db->insert('yourtable',$data);
    return $query;
}
else
{
    return FALSE;
}

答案 2 :(得分:0)

您可以尝试:

$get_gid = $this->db->query('SELECT * FROM users WHERE gid = '.$data['gid'].');

答案 3 :(得分:0)

您只需在查询$query->result()后忘记。