将表中的数据插入其他表

时间:2017-11-06 16:09:52

标签: php mysql

我有一个表(用户),如下所示:

ID |    CODE   | Name
---+----------+---------
 1 |    00A    | Tom
 2 |    12E    | Steve
 3 |    A4B    | Maria

现在我有其他表来插入数据,我需要插入user_id。问题是我只收到文档中的用户代码。 我必须在users表中搜索与该代码对应的id。

我想我必须做这样的事情:

$code = 123 

$query="select from users where id=$code"

$user_id = $query

$sql = "insert into table values ($user_id)"

我知道SQL / PHP代码不完整,我只是在寻找正确的LOGIC。也许有一种方法可以在同一个查询中搜索和插入。

3 个答案:

答案 0 :(得分:1)

我必须在用户表中搜索与您的问题相对应的ID

$code = 123 

$query="select * from users where code=$code"; //your variable code if confusing me, but it is fetching id based on id but different variable name do this.

$query="select * from users where id=$code";

$runquery = mysqli_query($con, $query); //$con is your database connection parameter 

$fetchuser = mysqli_fetch_array($runquery);

$idofuser = $fetchuser['id'];


$sql = "insert into table values ($idofuser)";
$coolrun = mysqli_query($con, $sql);

if ($coolrun){
 echo "The query ran.";
 }

答案 1 :(得分:0)

你可以用一个查询来做到这一点,但你必须使用PDO或类似的东西来避免SQL注入

Insert Into table
Select user_id from users
WHERE id = $code;

查看How Can I Prevent Sql Injection In PHP

答案 2 :(得分:0)

使用MySQLi,您将遵循:

$statement = $connection->prepare("INSERT INTO `table` (`column_name`) VALUES (SELECT `user_id` FROM `users` WHERE `id`= ?)");
$statement->bind_param("i", $id);
$statement->execute();

PDO将是:

$statement = $connection->prepare("INSERT INTO `table` (`column_name`) VALUES (SELECT `user_id` FROM `users` WHERE `id`= :id)");
$statement->bindParam(':id', $id);
$statement->execute();

我添加了column_name,因为我假设您的表有多列,并且您想指定应该插入哪个列。