为了账号安全,请及时绑定邮箱和手机立即绑定

您可以执行“INSERT SELECT WHERE”吗?两张桌子之间?

您可以执行“INSERT SELECT WHERE”吗?两张桌子之间?

PHP
元芳怎么了 2023-12-15 10:36:36
所以我一直在尝试创建一个简单的好友系统。注册时,您会获得随机数字和长度为 8 的字符。我将这个数字保存在一列中给用户。我一直在尝试与朋友一起插入当前会话的用户(PHP),$SessionUser用户名,uidUsers 使用“INSERT SELECT WHERE”声明,但出了点问题。这是我尝试过的东西:$sql = mysqli_query($conn, "INSERT into friends (uid1, uid2)      values($sessionUser, (SELECT  uidUsers FROM users WHERE idFriendCode = $idFriendCode)");在表格内,friends,我有两列,uid1(会话用户/发件人)和 uid2 (接收者,指定的姓名$idFriendCode)。我想将 $sessionUser 插入到 uid1 中,并将与 匹配的任何用户名 (uidUsers) 插入到 中。这似乎不起作用,我不知道为什么。我想问题是我不能使用这样的 PHP 变量。$idFriendCodeuid2我知道我不使用准备好的语句。我尝试过实现它,但我认为它比仅使用基本的 mysqli_query() 困难得多。
查看完整描述

2 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

您可以将插入内容表述为INSERT INTO ... SELECT:


INSERT into friends (uid1, uid2) 

SELECT $sessionUser, uidUsers

FROM users

WHERE idFriendCode = $idFriendCode;

请注意,理想情况下您应该在此处使用准备好的语句,因此上面的内容应如下所示:


INSERT into friends (uid1, uid2) 

SELECT ?, uidUsers

FROM users

WHERE idFriendCode = ?;


查看完整回答
反对 回复 2023-12-15
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

尝试为 select 添加一个新变量并在插入查询中使用它


例子:


$select_qr='SELECT  uidUsers FROM users WHERE idFriendCode = $idFriendCode'


$sql = mysqli_query($conn, "INSERT into friends (uid1, uid2) 

    values($sessionUser, $select_qr)");


查看完整回答
反对 回复 2023-12-15
  • 2 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信