Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何引用刚刚插入MySQL表中的行?_Php_Mysql_Sql_Codeigniter - Fatal编程技术网

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

Php 如何引用刚刚插入MySQL表中的行?,php,mysql,sql,codeigniter,Php,Mysql,Sql,Codeigniter,我在一个代码点火器模型中有这个函数,它创建了一个新的“视频” 如何获取MySQL表中这一新行的ID?我可以得到最后一行并添加1,但我相信可能存在并发错误。也许您需要类似的东西 $this->db->insert_id(); 非常简单的答案其实不需要超过30个字符,是吗 $this->db->insert_id(); 试试这样: $lastID = -1; //That's where it'll be stored $query = "SELECT LA

我在一个代码点火器模型中有这个函数,它创建了一个新的“视频”


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

也许您需要类似的东西

    $this->db->insert_id();  

非常简单的答案其实不需要超过30个字符,是吗

$this->db->insert_id();

试试这样:

$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];
}
插入的代码为:

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

有关查询的详细信息,请访问:

另一种解决方法是,您可以查看数据库中的“视频”表,并将视频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() 

它将返回最后一个插入行IDThank,我在这里也看到了这个答案()。这是并发证明吗?投票支持Joni的匹配解决方案-他的比我的早30秒!,我只是在这里回答一个问题,我不是说我们有sameThanks,我在这里也看到了这个答案()。这是并发证明吗?是的,从db模块获取insert_id是我知道的唯一安全的方法。像这里提供的更长的解决方案这样的方法在过去让我陷入了DB Traincrasks!这是在问并发问题,不是吗?使用DB对象的insert_id可以保证您刚才插入的行的id。您刚刚注意到它已被标记为
codeigniter
。我的答案通常是有效的,但在这种情况下可能不是最短的答案…任何时候使用LAST_INSERT_ID(),都会从表中获得最新的ID。如果两个人同时运行您的脚本,您很可能会获得由另一个脚本插入的行的ID。是的,
LAST\u INSERT\u ID()
在每个连接的基础上工作。如果您的应用程序使用线程池连接到MySQL,这可能会导致获取错误的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()