如何解决您可以在两个表之间执行“ INSERT SELECT WHERE”吗?
所以我一直在尝试创建一个简单的朋友系统。注册时,您将获得随机数字和8个字符的字符。我将此数字保存在用户栏中。我一直在尝试使用“ INSERT SELECT WHERE”语句插入当前会话的用户(PHP)$SessionUser
和朋友的用户名uidUsers
,但是出了点问题。这是我尝试过的东西:
$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
匹配的任何用户名($idFriendCode
)插入uid2
。这似乎不起作用,我也不知道为什么。我想问题是我不能使用像这样的PHP变量。
我知道我不使用准备好的陈述。我已经尝试实现它,但是我认为这比仅使用基本的mysqli_query()困难得多。
解决方法
您可以将插入的文字表达为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 = ?;
,
尝试使用新变量进行选择,并在插入查询中使用它
示例:
$select_qr='SELECT uidUsers FROM users WHERE idFriendCode = $idFriendCode'
$sql = mysqli_query($conn,"INSERT into friends (uid1,uid2)
values($sessionUser,$select_qr)");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。