如何引用刚刚插入MySQL表的行?

时间:2012-03-23 00:18:00

标签: php mysql sql codeigniter

我在Code Igniter模型中有这个功能,可以创建一个新的“视频”。

// Creates a new video.
public function newVideo($title, $description) {
    $this->db->query("INSERT INTO videos VALUES (NULL, '$title', '$description')");
    return // id of this new row
}

如何在MySQL表中获取此新行的ID?我可以得到最后一行并添加1,但我相信可能存在并发错误。

5 个答案:

答案 0 :(得分:6)

非常简单的答案真的不需要超过30个字符吗?

$this->db->insert_id();

答案 1 :(得分:5)

也许你需要这样的东西

    $this->db->insert_id();  

答案 2 :(得分:1)

尝试类似的东西:

$lastID = -1; //That's where it'll be stored

$query = "SELECT LAST_INSERT_ID()";
$result = mysql_query($query);

if ($result) 
{
     $row = mysql_fetch_row($result);
     $lastID = $row[0];
}

答案 3 :(得分:1)

插入代码是:

$sql = "INSERT INTO videos (title) VALUES(NULL, '$title', '$description')";
$this->db->query($sql);

有关查询的更多信息,请访问:http://codeigniter.com/user_guide/database/queries.html

答案 4 :(得分:0)

另一种解决方法是,您可以查看数据库中的视频表,并将视频ID设为自动编号,这会自动为您的视频生成ID,然后您可以尝试:

//on your model
$sql = "INSERT INTO videos (title,description) VALUES('$title', '$description')";
$this->db->query($sql);

//retrieve new video id
$this->db->insert_id()