我是MySQL和PHP的新手。我有两张桌子。第一个是users
,其中包含网站用户的信息,第二个表名为SendRequests
。
我想在第二个表中存储每个用户发布的数据(就像广告发布网站),我希望第一列用于登录用户的电子邮件,以便我可以找到该用户的帖子后来。这就是我尝试这样做的方式:
使用两个INSERT
如下:
$query1=" INSERT INTO SendRequests (email) SELECT email FROM users
WHERE id = '".$_SESSION['id']."' LIMIT 1";
mysqli_query($link, $query1);
$_SESSION['id']= mysqli_insert_id($link);
$query = "INSERT INTO `SendRequests` (`country`, `city`, `fee`) VALUES
('".mysqli_real_escape_string($link,$_POST['departurecountry'])."',
'".mysqli_real_escape_string($link, $_POST['departurecity'])."',
'".mysqli_real_escape_string($link,$_POST['fee'])."')."')
WHERE id = '".$_SESSION['id']."'";
mysqli_query($link, $query);
答案 0 :(得分:0)
第二个查询中有一个错误 - 在结尾处有一个备用."')
〜将其更改为:
$query = "INSERT INTO `SendRequests` (`country`, `city`, `fee`) VALUES
('".mysqli_real_escape_string($link,$_POST['departurecountry'])."',
'".mysqli_real_escape_string($link, $_POST['departurecity'])."',
'".mysqli_real_escape_string($link,$_POST['fee'])."')
WHERE id = '".$_SESSION['id']."'";
答案 1 :(得分:0)
您可以在搜索电子邮件时使用此查询插入数据:
INSERT INTO SendRequests(email, country, city, fee)
SELECT email, "FR", "Paris", 56.65
FROM SendRequests
WHERE id = 1;
如果已插入标识为1
的行,则此方法有效。您可以通过这种方式将您的2个插入合并为一个。
因此,如果ID为1的SendRequests等于anon@host.com
,并且您运行上述查询,则至少会有2行:
ID EMAIL COUNTRY CITY FEE
========================================
1 anon@host.com US Florida 150.25
2 anon@host.com FR Paris 56.65