6

是否有任何 codeigniter 功能可以做到这一点?

4

9 回答 9

16

试试这个代码:

$this->db->insert_id();

参考: https ://www.codeigniter.com/user_guide/database/helpers.html

于 2013-01-21T06:22:53.060 回答
9

没有特殊的功能。但是您可以获取刚刚插入的行的 id,然后获取它的数据:

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

$id = $this->db->insert_id();
$q = $this->db->get_where('table_name', array('id' => $id));
return $q->row();
于 2013-10-21T10:06:01.050 回答
2

插入后使用 Active Record 方法。返回最后插入的 id

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

这里是参考

于 2013-01-21T07:56:43.570 回答
2

我有建议给你。当您要插入数据时,请返回您的数据数组,您可以对其进行编辑。

  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;
   }

我希望这会有所帮助。

于 2015-02-28T07:34:20.843 回答
1

这将帮助您从表中获取最后插入的行。

$last = $this->db->order_by('id',"desc")->limit(1)->get('tablename')->row();
    print_r($last);
于 2017-06-08T23:28:51.610 回答
1

您可以通过以下代码获取插入的数据,

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

参考:https ://www.codeigniter.com/user_guide/database/query_builder.html

于 2019-05-30T08:24:09.923 回答
0

关于什么 :

$this->db->get('mytable', 1,0)
于 2013-01-21T07:10:40.220 回答
0

仅使用 codeigniter 的活动记录尝试此操作。此代码为您提供表格的最后一行。

$this->db->limit(1);
$this->db->order_by('id','desc');
$query = $this->db->get('tablename');
return $query->result_array();
于 2018-10-18T14:49:32.580 回答
0

根据选项尝试此操作并返回:

$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;
}
于 2018-11-28T14:09:47.333 回答