我想获取最后一个插入行的id,并使用mysql_insert_id()函数。但是提出问题
这是我的代码:
if($i == 0)
{
$query = "update events set e_did ='".$multi_event."' where eid = '".$display_id."'";
mysqli_query($con,$query);
file_put_contents('log.txt', mysql_insert_id(), FILE_APPEND);
}
else
{
$query = "INSERT INTO events (start_date, end_date, text, rec_type, event_pid, event_length, e_did) VALUES ('".$row['start_date']."','".$row['end_date']."','".$row['text']."','".$row['rec_type']."','".$row['event_pid']."','".$row['event_length']."','".$multi_event."')";
mysqli_query($con,$query);
file_put_contents('log.txt', 'A'.mysql_insert_id().'A', FILE_APPEND);
}
现在两次我都得到同样的身份。问题是什么我在某处做错了什么?
答案 0 :(得分:6)
如果使用mysqli函数,则必须使用mysqli_insert_id。你不能混合使用ext / mysql和ext / mysqli。
此外,UPDATE不会生成新的自动增量ID。你应该在INSERT之后调用mysqli_insert_id(),而不是UPDATE。
答案 1 :(得分:4)
mysqli_insert_id()
仅返回id
次INSERT
次查询。 update
查询将不返回一个ID,因为根据定义,您必须在数据库中有一行才能获得更新。
答案 2 :(得分:2)