How to get a value from the last inserted row using Codeigniter

别说谁变了你拦得住时间么 提交于 2019-12-23 09:55:45

问题


Is there any codeigniter function to do this?


回答1:


try this code:

$this->db->insert_id();

Refer: https://www.codeigniter.com/user_guide/database/helpers.html




回答2:


There is no special function for that. But you can get the id of row that you've just inserted and then get it's data:

$this->db->insert('table_name', $data);

$id = $this->db->insert_id();
$q = $this->db->get_where('table_name', array('id' => $id));
return $q->row();



回答3:


I have tips for you. When you want to insert data, please return your data array and you can edit it.

  public function set_alb_photos() {
     $data = array(
      'alp_title' => $this->input->post('alp_title'),
      'alp_file_location' => $this->input->post('alp_file_location'),
      'alp_album_id' => $this->input->get('alb_id'),
      'alp_created_at' => date("Y-m-d H:i:s"),
      'alp_updated_at' => date("Y-m-d H:i:s")
     );
     $this->db->insert('alb_photos', $data);
     return $data;
   }

I hope this help.




回答4:


Use Active Record method after insertion. return last inserted id

function insert($data)
{
    $this->db->insert('tablename', $data);
    return $this->db->insert_id();
}

Here is reference




回答5:


This will help you to get last inserted row from the table.

$last = $this->db->order_by('id',"desc")->limit(1)->get('tablename')->row();
    print_r($last);



回答6:


You can get inserted data by below code,

$query = $this->db->get_where('table1', array('id' => $id)); //get inserted data
return $query->result_array();

Refer:https://www.codeigniter.com/user_guide/database/query_builder.html




回答7:


What about :

$this->db->get('mytable', 1,0)



回答8:


Try this only with active record of codeigniter. This code gives you the last row of your table.

$this->db->limit(1);
$this->db->order_by('id','desc');
$query = $this->db->get('tablename');
return $query->result_array();



回答9:


Try this depending on the options and return :

$data = {} //your array;
// now if your $data array contained all the values of the new row just do this
function yourFunction(){
  // insert into array into db
  $this->db->insert('table_name', $data);
  // get created rows id
  $id = $this->db->insert_id();
  // update your $data array with the new generated id and return it
  $data['id'] = $id;
  return $data;
}


// Option 2: if row has fields that auto populates (example current timestamp)
function yourFunctionAlt(){
  // insert into array into db
  $this->db->insert('table_name', $data);
  // get created rows id
  $id = $this->db->insert_id();
  // get row as a array 
  $_rowArray = $this-db->get_where('table_name',array('id'=>$id)->row_array();
  return $_rowArray;
  // or get as a object
  $_Object = $this->db->get_where('table_name',array('id'=>$id);
  return $_Object;
}


来源:https://stackoverflow.com/questions/14433251/how-to-get-a-value-from-the-last-inserted-row-using-codeigniter

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!