我已经插入一个表格并使用insert_id我想要回来但是它没有发生?

时间:2013-12-18 21:43:34

标签: php mysql codeigniter-2

以下是我的代码:

    //In one of my model(name is commonmodel) I wrote
    public function create_and_get($table,$data){
    $this->db->insert($table,$data); //It's okay
    $lastid= $this->db->insert_id();
    $getback=$this->db->get($table,array('id'=>$lastid))->result_array();
    return $getback[0];

在控制器---基本上它是一个ajax调用所以..

    $stored=$this->commonmodel->create_and_get('party',$data);
    echo json_encode($stored); exit;

在ajax响应中,我打电话给..

    var obj=$.parseJSON(res) //I get the object at console.log(obj)
    //but it's the first row every time from the 'party' table..

我真是太该死了这个错误和其他一些id hacks ...请帮助......

1 个答案:

答案 0 :(得分:0)

我知道你已经解决了,但我认为这是一个更好的解决方案,只需返回用于插入的数据,而不是再次查询数据库。

这样的事情会起作用:

public function create_and_get($table,$data) {

    $this->db->insert($table,$data); 
    $lastid = $this->db->insert_id();
    $data['id_field_name'] = $lastid;
    return $data;

}

这将为您节省数据库的另一次旅行。