我有两个表用户和电子邮件。一个用户可以拥有多个电子邮件,因此它是一个单独的表(包含user_id作为其主键的一部分)。 我想在用户表中插入多个属性,并在电子邮件表中插入一封电子邮件。 使用mySQL查询的最佳方法是什么? 是否有任何单行命令可以做到这一点?
如果我不能只使用mySql,我也可以使用php脚本
更新
我看到人们误解了我的问题。
我想要做的就是将insert
值(如用户名密码)输入到我的用户表中,将一封电子邮件发送到链接的电子邮件表(链接到同一用户的那个)
我想知道在mySQL(以及必要的Php)中最好的方法是什么
我希望答案包括mySQL查询(如果必要,还包括php scrips)
答案 0 :(得分:2)
最好的方法是在交易中完成。这样,如果电子邮件插入失败,整个事务也将失败。
BEGIN;
INSERT INTO users (name)
VALUES ('Emil Vikström');
INSERT INTO emails (user_id, email)
VALUES (LAST_INSERT_ID(), 'email address');
COMMIT;
答案 1 :(得分:1)
您应该执行多个SQL INSERT查询。 我认为进行多种操作monolite的最佳方法是使用SQL事务。
答案 2 :(得分:1)
你可以这样做;
$query = "INSERT INTO users (name) VALUES ("you username");
$result = mysql_query($query);
if($result)
{
$generated_userID = mysql_insert_id(); // php function to get the last generated ID by previous result
$query = "INSERT INTO emails(user_ID, email) VALUES ($generated_userID, "you email value");
$result = mysql_query($query);
if($result)
echo "email inserted in email table";
else
{
echo "problem inserting in email table";
return;
}
}
else
{
echo "can't insert into users table";
}
让我知道它是否有效。
答案 3 :(得分:0)
像这样你可以插入多个值和多行,但我从来没有看到有什么要做多个插入到不同的表中。
INSERT INTO example
(example_id, name, value, other_value)
VALUES
(100, 'Name 1', 'Value 1', 'Other 1'),
(101, 'Name 2', 'Value 2', 'Other 2'),
(102, 'Name 3', 'Value 3', 'Other 3'),
(103, 'Name 4', 'Value 4', 'Other 4');
最好的办法是向用户添加一行,用mysql_insert_id
{{1}}描述用户ID {/ 3}}