如何一次将数据插入两个MySQL表中。
$username = $_POST['username'];
$user_pass = $_POST['password'];
$user_type = $_POST['tpye'];
$user_street = $_POST['street'];
$user_city = $_POST['city'];
$user_country = $_POST['country'];
$user_email = $_POST['email'];
$user_phone = $_POST['phone'];
$query = "INSERT INTO fkrv_users
(fkrv_username, fkrv_user_pass, fkrv_user_type,
fkrv_user_street, fkrv_user_city, fkrv_user_cuntry,
fkrv_user_email, fkrv_user_phone)
VALUES ('$username','$user_pass','$user_type,',
'$user_street','$user_city','$user_country',
'$user_email','$user_phone')";
$result = mysqli_query($link,$query);
我需要将$ username和$ user_type插入到表fkrv_list ..
中我尝试了两个MySQL查询但是没有用。这是我试过的..
$username = $_POST['username'];
$user_pass = $_POST['password'];
$user_type = $_POST['tpye'];
$user_street = $_POST['street'];
$user_city = $_POST['city'];
$user_country = $_POST['country'];
$user_email = $_POST['email'];
$user_phone = $_POST['phone'];
$query1 = "INSERT INTO fkrv_users
(fkrv_username, fkrv_user_pass, fkrv_user_type,
fkrv_user_street, fkrv_user_city, fkrv_user_cuntry,
fkrv_user_email, fkrv_user_phone)
VALUES ('$username','$user_pass','$user_type,',
'$user_street','$user_city','$user_country',
'$user_email','$user_phone')";
$query2 "INSERT INTO fkrv_list
(fkrv_list_username, fkrv_list_type)
VALUES ('$username','$user_type')
$result = mysqli_query($link,$query1,$query2);
我还绑定了一个查询并使用“AND INSERT INTO”,但没有成功..
有什么想法吗?
谢谢!
答案 0 :(得分:2)
你可以像这样单独运行每一个:
$query1 = "INSERT INTO fkrv_users (fkrv_username, fkrv_user_pass, fkrv_user_type, fkrv_user_street, fkrv_user_city, fkrv_user_cuntry, fkrv_user_email, fkrv_user_phone) VALUES ('$username','$user_pass','$user_type,','$user_street','$user_city','$user_country','$user_email','$user_phone')";
$query2 "INSERT INTO fkrv_list (fkrv_list_username, fkrv_list_type) VALUES ('$username','$user_type')";
$result1 = mysqli_query($link,$query1);
$result2 = mysqli_query($link,$query2);
答案 1 :(得分:0)
正如其他人所说,你必须插入2次。
但是,您也可以通过几种更好的方式处理此问题。
delimiter #
create trigger to_list_from_users_ins_trig after insert on fkrv_users
for each row
begin
insert into fkrv_list (fkrv_list_username, fkrv_list_type) values (new.fkrv_username, new.fkrv_user_type);
end#
这实际上应该是选项1,但是......
确保您的SQL / Table架构/ PHP代码尽可能高效,并且可以放在一起。逻辑上哪些部分组合在一起。什么在逻辑上适合特定的域或类别?
如果您需要为每个用户提供此字段,则应该将其放在users表中。
列表的目的是什么?你用什么数据?
您的代码目前直接将变量输入表格。
您应该进行某种形式的验证和清理,以防止SQL注入用户表单等内容。
高度建议您在将任何用户输入插入数据库之前将其转义。如果不这样做会让你非常容易受到攻击,并且不会让那些不太好的人对你的数据感兴趣。
为此,您可以简单地执行以下操作:
$username = mysqli_real_escape_string($link, $_POST['username']);
对于进入查询的每个其他变量,等。
您可以阅读PHP.net manual page。