我有一个表(用户),如下所示:
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。也许有一种方法可以在同一个查询中搜索和插入。
答案 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;
答案 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
,因为我假设您的表有多列,并且您想指定应该插入哪个列。