是否可以在一个查询中插入并选择另一个表?

时间:2019-05-20 08:38:36

标签: php mysql pdo

我的问题是我只想选择唯一的ID,然后将数据插入到另一个表中。因此我要插入table1,并选择table2。例如,例如,我登录到John并且插入的值为6000,所以当我再次登录时,肯定是其他用户,不应显示6000

所以我在表1中插入了这个

================
id | name   | value
----------------
1   | John  | 6000
=================

我在表2中有

====================
id | user_id | value
1  |   1     |  6000
====================

user_id是表1上的约翰

因此,如何使它仅只查询,所以当我登录ID时,它具有插入的值,而当我登录另一个用户时,不应显示所选的值。

我的代码

$dsn = 'mysql:host='. $host . ';dbname=' . $dbname;

$pdo = new PDO($dsn, $user, $password);

$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$stmt1 = $pdo->query('SELECT * FROM accept');


$addInfo=$_POST['addInfo'];
$passInfo=$_POST['passInfo'];


$row = $stmt1->fetch(PDO::FETCH_ASSOC);

$stmt1 = $pdo->prepare("insert accept set accept_info=:addInfo ,pass_id=:passInfo");

$stmt1->bindparam(':addInfo', $addInfo);
$stmt1->bindparam(':passInfo', $passInfo);
if($stmt1->execute())
{
  $res="Data Inserted Successfully:";
  echo json_encode($res);
}
else {
  $error="Not Inserted,Some Problem occur.";
  echo json_encode($error);
}

我的输入

<input type="hidden" id="passenger_announcement" value="<?php echo $row['value'] ?>" />

<input type="hidden" id="passenger_id" value="<?php echo $row['user_id'] ?>" />

1 个答案:

答案 0 :(得分:0)

我认为您的主要问题是

所以如何使它仅查询,所以当我登录ID时,它具有插入的值,而当我登录另一个用户时,所选的值不应显示。对吗?

我认为您需要的是查询中PHP SessionWHERE子句的组合

STEP 1

登录到应用程序时,将用户的ID分配给会话,例如:

session_start()
//create a session variable and pass the user's ID to it
$_SESSION['user_id'] = $row['id']

第2步

您有查询

$stmt1 = $pdo->query('SELECT * FROM accept');

将其更改为

$stmt1 = $pdo->query('SELECT * FROM accept WHERE id ='.$_SESSION['user_id']);

因此您只能从accept表中获取仅属于 LOGGED IN 用户

的数据