【发布时间】:2020-12-24 08:48:45
【问题描述】:
所以我一直在尝试创建一个简单的朋友系统。当你注册时,你会得到随机数字和长度为 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,并将与$idFriendCode 匹配的任何用户名(uidUsers)插入uid2。这似乎不起作用,我不知道为什么。我想问题是我不能使用这样的 PHP 变量。
我知道我不使用准备好的语句。我已经尝试过实现它,但我认为它比仅使用基本的 mysqli_query() 要困难得多。
【问题讨论】:
-
警告:您对SQL Injections 持开放态度,应该使用参数化的prepared statements,而不是手动构建查询。它们由PDO 或MySQLi 提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行,you are still in risk of corrupting your data。 Escaping is not enough!
-
我想通了。我最终添加了来自 Tims 答案的准备好的声明。