你能在两个表之间做一个 "INSERT SELECT WHERE" 吗?
Can you do a "INSERT SELECT WHERE" between two tables?
所以我一直在尝试创建一个简单的好友系统。当你注册时,你会得到随机数字和长度为 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)");
在 table、friends
中,我有两列,uid1
(会话 user/sender)和 uid2
(接收者姓名指定 $idFriendCode
)。我想将 $sessionUser
插入到 uid1 以及与 $idFriendCode
匹配的任何用户名 (uidUsers
) 到 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 创建一个新变量并在插入查询中使用它
示例:
$select_qr='SELECT uidUsers FROM users WHERE idFriendCode = $idFriendCode'
$sql = mysqli_query($conn, "INSERT into friends (uid1, uid2)
values($sessionUser, $select_qr)");
所以我一直在尝试创建一个简单的好友系统。当你注册时,你会得到随机数字和长度为 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)");
在 table、friends
中,我有两列,uid1
(会话 user/sender)和 uid2
(接收者姓名指定 $idFriendCode
)。我想将 $sessionUser
插入到 uid1 以及与 $idFriendCode
匹配的任何用户名 (uidUsers
) 到 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 创建一个新变量并在插入查询中使用它
示例:
$select_qr='SELECT uidUsers FROM users WHERE idFriendCode = $idFriendCode'
$sql = mysqli_query($conn, "INSERT into friends (uid1, uid2)
values($sessionUser, $select_qr)");