我正在为 Facebook 上的一款游戏开发邮箱系统。我有 2 个 php 脚本输入,示例输入如下:
$FriendIDs = "10000001,10002421,10132000,10074794,13523543"
$MailCode = "ReqGem"
以及一个包含 ID、邮箱列的表格。
我想要做的是将 FriendID 中每个人的 Mailbox 字段中最初的内容与 MailCode 连接起来。
我认为它是这样的,但我无法让它工作(我的 php/sql 知识非常糟糕!):
mysqli_query($db, "UPDATE Save SET Mailbox = CONCAT(Mailbox,'$MailCode' . '_') WHERE 'id' IN $FriendIDs);
编辑:我刚刚意识到,如果 FriendID 尚未在表中,我需要添加新行。
我猜我需要从 INSERT INTO 开始,然后使用 ON DUPLICATE KEY UPDATE,但我似乎无法让它工作。这有点棘手,因为唯一键位于数组中,并且我无法在 INSERT 查询中使用 WHERE id
IN(ArrayOfValues)。
任何帮助将不胜感激!
最佳答案
你很接近:
$FriendIDs = "10000001,10002421,10132000,10074794,13523543";
$MailCode = "ReqGem";
mysqli_query($db, "UPDATE Save SET Mailbox = CONCAT(Mailbox,'$MailCode' . '_') WHERE `id` IN($FriendIDs));
- 您只需要
IN()
的括号,因为它是一个函数。 - 不要对列名称使用单引号。使用蜱虫。单引号用于字符串。
关于PHP - 更新字段(如果在数组中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22725597/