我有两张桌子。在一个表中,我添加了事件,ID是自动递增。第二个表包含个人事件。
因此,如果我创建事件,它会添加到两个表中。
下面是我的代码示例。因此,首先,我在常规表中添加了一个新事件。然后,我想将相同的事件添加到调度表中,但我需要获得刚刚添加的事件的ID。所以我执行第二个查询。
有没有什么优化的方法可以做到这一点,或者至少在不需要额外查询的情况下获得刚刚添加的事件的ID?
mysql_query("INSERT INTO events (title, description, user) VALUES ('$title', '$description', '".$user['id']."')");
$id = mysql_fetch_array(mysql_query("SELECT id FROM events WHERE user='".$user['id']."' ORDER BY date_added DESC LIMIT 1"));
mysql_query("INSERT INTO schedule (uid, event) VALUES ('".$user['id']."', '".$id['id']."')") or die(mysql_error());发布于 2012-03-20 23:36:39
我想mysql_insert_id()就是你要找的..。
您还可以在第二个INSERT查询中使用MySQL原生LAST_INSERT_ID():
mysql_query("INSERT INTO schedule (uid, event) VALUES ('".$user['id']."', LAST_INSERT_ID())") or die(mysql_error()); ...and完全跳过检索ID。
发布于 2012-03-20 23:37:48
没有“优化”的方法。
有一种正确的方法可以获得插入的id,称为mysql_insert_id()。
发布于 2012-03-20 23:38:00
我猜您正在寻找最后插入的id:LAST_INSERT_ID()
https://stackoverflow.com/questions/9789843
复制相似问题