使用一个查询内部联接插入到两个表中

时间:2016-08-02 13:55:57

标签: mysql insert inner-join

我有两张桌子。一个是user_info,另一个是user_login。我想使用内部联接在一个查询中将数据插入这两个表中。数据来自用户注册。

我的登录表:

user_id(pk) user_name  user_password
 1           jinesh     secret
 2           mahesh     secret

我的信息表:

user_id(fk) name      address   phno
   1        jinesh n  banglore  9845***
   2        mahesh m  chennai   7345**

2 个答案:

答案 0 :(得分:1)

您无法在insert

中对two tables值进行一次查询

但是如果你想在一个语句中只有两个查询 如果您使用;

分隔语句,则可以执行此操作
$query = "insert into table_1 (data1, data2) values ('value1', 'value2');insert into table_2 (data1,data2) values ('value1', 'value2')";

答案 1 :(得分:0)

最好的方法是使用CREATE PROCEDURE `Proc_User` (IN username VARCHAR(225), IN password VARCHAR(255), IN uname VARCHAR(255),IN addr VARCHAR(255),IN phno VARCHAR(20)) BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING BEGIN -- ERROR or WARNING ROLLBACK; END; START TRANSACTION; DECLARE userid INT; INSERT INTO login (user_name,user_password) VALUES(username,password); SET userid = (SELECT LAST_INSERT_ID()); INSERT INTO info(user_id,name,address,phno) VALUES(userid,uname,addr,password); COMMIT; END

$proc = mysqli_prepare('CALL Proc_User(?, ?, ?,?,?);');
mysqli_stmt_bind_param('sssss', $username, $password, $name,$address,$phoneno);
mysqli_stmt_execute($proc);

并在PHP中调用存储过程

row_stat_cd