0

私は、メインの記事が 1 つあるプロジェクトに取り組んでおり、それに多くの異なる記事を添付できます。したがって、送信時に記事を 2 つの異なるセクションに分割しました。これは、2 つの異なるテーブルに送信する必要があるためです。

最初の部分を送信した後、記事の残りを添付できるように、user_name に基づいて最後に送信された 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

私の推測では、2 つのテーブル間の外部キー関係について話していると思います。これを行う 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 をセッションに保存できます。

于 2013-05-28T17:22:46.610 に答える