猿问

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

所以我一直在尝试创建一个简单的好友系统。注册时,您会获得随机数字和长度为 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() 困难得多。


元芳怎么了
浏览 144回答 2
2回答

拉丁的传说

您可以将插入内容表述为INSERT INTO ... SELECT:INSERT into friends (uid1, uid2) SELECT $sessionUser, uidUsersFROM usersWHERE idFriendCode = $idFriendCode;请注意,理想情况下您应该在此处使用准备好的语句,因此上面的内容应如下所示:INSERT into friends (uid1, uid2) SELECT ?, uidUsersFROM usersWHERE idFriendCode = ?;

鸿蒙传说

尝试为 select 添加一个新变量并在插入查询中使用它例子:$select_qr='SELECT  uidUsers FROM users WHERE idFriendCode = $idFriendCode'$sql = mysqli_query($conn, "INSERT into friends (uid1, uid2)     values($sessionUser, $select_qr)");
随时随地看视频慕课网APP
我要回答