0

我正在做一个有一篇主要文章的项目,您可以将许多不同的文章附加到它上面。因此,在提交时,我将文章分成两个不同的部分,因为我需要将它们提交到两个不同的表格中。

提交第一部分后,我试图根据他们的用户名获取最后提交的 id,以便我可以附上文章的其余部分。如果这是有道理的。

我尝试了几种不同的方法,但似乎没有什么能夺回那个 id。

首先我尝试了 insert_id() 肉类,但它返回一个 0

public function pullLastStoryId($author){
    $this->db->where('author', $author);
    $this->db->insert_id();
    $story = $this->db->get('story_tbl');
    return $story->result();    
} 

所以我也试着抓住

public function pullLastStoryId($author){
    $story = $this->db->query('SELECT LAST_INSERT_ID() INTO story_tbl;')
    return $story->result();    
}   

有任何想法吗

4

3 回答 3

0

我不清楚这个问题。你在寻找这样的东西吗?

public function pullLastStoryId(){
    $story = $this->db->query('SELECT id from tablename where id = LAST_INSERT_ID()')
    return $story->result();    
}   

或者

public function pullLastStoryId(){
    $id = $this->db->insert_id();
    $this->db->where('id',$id);
    $story = $this->db->get('story_tbl');
    return $story->result();    
} 
于 2013-05-28T17:14:23.790 回答
0

我的猜测是您正在谈论两个表之间的外键关系。一种方法是:

$this->db->insert('author',$vals);
$id = $this->db->insert_id();
// do something with ID.

据我所知,你可能会做这样的事情:

$story_row = $this->db->get_where('story_tbl',array('id' => $id));

您不必担心不同的user_name属性,因为那将是最后创建的 ID。但是,如果您真的想恢复该行,则可以这样做:

$author_row = $this->db->get_where('author',array('author_id' => $id));

如果您需要在其他地方拥有此 ID(例如,在提交另一个表单后),您可以使用hidden表单输入或(这更安全),您可以将该 ID 存储在 session.

于 2013-05-28T17:22:46.610 回答
-1

如果您想获得 Last id,那么您的方式是错误的。$this->db->insert_id() 等用于主动查询。试试这个:SELECT id FROM table ORDER BY id DESC LIMIT 1

于 2013-05-28T17:07:41.433 回答