最好的方法是使用Stored Procedure
。
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
,并调用存储过程在PHP
$proc = mysqli_prepare('CALL Proc_User(?, ?, ?,?,?);');
mysqli_stmt_bind_param('sssss', $username, $password, $name,$address,$phoneno);
mysqli_stmt_execute($proc);
您不能插入与单个查询多个表。但是,如果您试图达到ACID合规性,则可以将多个查询合并到一个事务中。 – eggyal
您无法使用一个查询 – DestinatioN
将数据插入多个表中,您可以执行此操作。你必须分开查询; –