如何在单个查询中将数据插入到多个表中 - Mysql
我有8个查询要插入到8个表中。我试图与这可是没有用如何在单个查询中将数据插入到多个表中 - Mysql
$mysql_db_hostname = "localhost";
$mysql_db_user = "root";
$mysql_db_password = "";
$mysql_db_database = "emp";
$con = mysqli_connect($mysql_db_hostname, $mysql_db_user, $mysql_db_password) or die("Could not connect database");
mysqli_select_db($con, $mysql_db_database) or die("<div class='loginmsg'>Could not select database</div>");
if(mysqli_multi_query($con,"INSERT INTO t_emp (`e_id`,``,``) VALUES ('','',''); INSERT INTO t_emp_add (`e_id`,``,``) VALUES ('','',''); INSERT INTO t_emp_att (`e_id`,``,``) VALUES ('','',''); INSERT INTO t_emp_dep (`e_id`,``,``) VALUES ('','','');.....(etc);"))
{
echo "Inserted";
}
else{
echo "Not Inserted";
}
是否有任何存储到多个表的方法..?
不,MySQL没有表达式用于在多个表中插入一个查询。
如果你愿意,你可以使用MySQL stored procedures or functions和/或使用transactions。
@Machavity OP现在发布了同样的问题http://stackoverflow.com/q/33583542/,并建议她使用它。这是根据Stack如何看待它的重新发布/重复。 –
我看到这个答案没有问题 – Drew
由于这个问题是在其他发布关闭,我会在这里把这个 - 创建一个存储过程: -
delimiter $$
CREATE PROCEDURE `spInsertTemp`(IN `p_emp_no` INT, IN `p_e_id` INT, IN `p_att_s_no` INT, IN `p_dep_s_no` INT)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
begin
insert into `t_emp` (`emp_s_no`,`e_id`) values (p_emp_no, p_e_id);
insert into `t_emp_add` (`e_id`) values (p_e_id);
insert into `t_emp_att` (`att_s_no`,`e_id`) values (p_att_s_no, p_e_id);
insert into `t_emp_dep` (`dep_s_no`, `e_id`) values (p_dep_s_no, p_e_id);
end $$;
delimiter ;
运行在你的图形用户界面,使用像: -
$sql='call `spInsertTemp`(1,2,4,5);';
$ sql ='call'spInsertTemp'(1,2,4,5);'; 这些1,2,3,4,5 ..是什么? – angel
他们我的朋友是表示存储过程的各种参数的示例参数值。 sp有4个参数,因此有4个值 – RamRaider
@RamRaider我认为你在这方面有很长的路要走。我并没有侮辱这个人,但很明显她没有理解SQL的概念。在她的另一个问题http://stackoverflow.com/q/33583542/中,她提到了一个表单*“@ RiggsFolly第一次意味着我第一次提交表单时(第一条记录) - 天使”*,并且没有代码支持这个问题,她也没有检查它为什么失败。 '回声“不插入”;'没有告诉她真正的原因,为什么她的查询失败。我怀疑她的问题将永远解决。我衷心祝愿她好。 –
您可以使用After Insert Trigger
将记录插入多个表中。当插入语句在该数据库中执行时它将自动触发。
任何错误信息?什么是您的实际查询? – chris85
这不是多重查询的工作原理。 RTM http://php.net/manual/en/mysqli.multi-query.php或者这个http://www.w3schools.com/php/php_mysql_insert_multiple.asp –
你在这里也有一个语法错误echo“Not Inserted”你需要使用适当的错误处理http://php.net/manual/en/mysqli.error.php –