【问题标题】:grabbing the last last id based on user_name - codeigniter根据 user_name 获取最后一个 id - codeigniter
【发布时间】:2013-05-28 17:04:33
【问题描述】:

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

提交第一部分后,我试图根据他们的用户名获取最后提交的 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();    
}   

任何想法

【问题讨论】:

    标签: php sql codeigniter


    【解决方案1】:

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

    $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 存储在会话中。

    【讨论】:

    • 这实际上对我不起作用。我想你误解了我的问题。我没有插入任何东西或试图找回作者。我正在尝试根据作者的用户名取回最后插入的文章,以便他们可以插入文章的其余部分。
    【解决方案2】:

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

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

    【讨论】:

    • 不是真的,我正在尝试根据作者是谁取回最后插入的文章ID,我的唯一字段是作者,因为没有人可以拥有相同的用户名。
    【解决方案3】:

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

    【讨论】:

    • 对 ID 使用序列、auto_increment 等的主要原因是数据库在保持完整性方面要好得多。如果有人同时管理来自单独请求的插入,您会怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多