我有两张桌子。一个是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**
答案 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