[英]Inserting into two tables using two separate queries
我正在尝试使用两个sql插入查询插入两个表中。 如图所示,第一个查询应插入一个表中,第二个第二条语句需要插入第二个表中。 但是,我需要第二条语句以某种方式知道在第一个查询中分配给记录的故事ID(SID)是什么。 SID是表“ stories”中的主键和auto_increments,它是表“ writing”中的一个字段
然后,我想以某种方式(假设使用JOIN)用分配给第一个查询的SID填充写入表中的SID。 但是,代码如何知道刚插入第一个查询的那个记录是哪个记录呢?
// Get values from form
$category = $_POST['category'];
$genre = $_POST['genre'];
$story_name = $_POST['story_name'];
$text = $_POST['text'];
$query = "INSERT INTO stories (ID, category, genre, story_name, active) VALUES
('$user_ID', '$category', '$genre','$story_name', '1')";
$result = mysql_query($query);
$SID = mysql_insert_id();
$SID2 = "select stories.SID from stories where stories.SID=$SID";
$query2 = "INSERT INTO writing (ID, SID, text, position, approved)
VALUES('$user_ID', '$SID2', '$text', '1','N')";
$result = mysql_query($query2);
只需在数据库调用之间使用mysql_insert_id()
。
$query = "INSERT INTO stories (ID, category, genre, story_name, active) VALUES
('$user_ID', '$category', '$genre','$story_name', '1')";
$result = mysql_query($query2);
$sid = mysql_insert_id(); // <-- GET ID
$query2 = "INSERT INTO writing (ID, SID, text, position, approved)
VALUES('$user_ID', '$sid', '$text', '1','N')"; // <-- you can now use $sid here
$result = mysql_query($query);
仅供参考, 您不应在新代码中使用mysql_*
函数 。 它们不再维护,已正式弃用 。 看到红色框了吗? 相反,要了解准备好的语句 ,并使用PDO或MySQLi- 本文将帮助您确定哪一个。 如果您选择PDO, 这是一个很好的教程 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.