将来自2个不同源的数据插入MySQL中的一个表中

时间:2016-01-20 16:23:05

标签: php mysql

我是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);

2 个答案:

答案 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