2014-03-29 44 views
0

我正在为Facebook上的游戏开发邮箱系统。我有2个输入PHP脚本,具有低于例如输入:PHP - 更新一个字段,如果它在一个数组中

$ FriendIDs = “10000001,10002421,10132000,10074794,13523543”

$ MailCode = “ReqGem”

和包含列ID,邮箱的表格。

我想要做的是将任何原来在Mailbox字段中的邮件代码连接到FriendID中的每个人。

我想这是这样的,但我无法得到它的工作(我的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)。

任何帮助将不胜感激!

回答

2

你接近:

$FriendIDs = "10000001,10002421,10132000,10074794,13523543"; 
$MailCode = "ReqGem"; 
mysqli_query($db, "UPDATE Save SET Mailbox = CONCAT(Mailbox,'$MailCode' . '_') WHERE `id` IN($FriendIDs)); 
  • 你只需要括号为IN(),因为它是一个功能。
  • 请勿为列名使用单引号。使用勾号。单引号是用于字符串。
+0

非常感谢。勾号和单引号之间的细微差别不断让我滑倒! – seanlloydbooth

相关问题