【问题标题】:PHP - Update a field if its in an arrayPHP - 如果字段在数组中,则更新字段
【发布时间】:2014-03-29 00:51:01
【问题描述】:

我正在为 Facebook 上的游戏开发邮箱系统。我有 2 个 php 脚本的输入,示例输入如下:

$FriendIDs = "10000001,10002421,10132000,10074794,13523543"

$MailCode = "ReqGem"

还有一个包含列 ID、邮箱的表。

我希望能够为 FriendID 中的每个人连接“邮箱”字段中最初的所有内容和 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)。

任何帮助将不胜感激!

【问题讨论】:

    标签: php mysql sql arrays concatenation


    【解决方案1】:

    你已经接近了:

    $FriendIDs = "10000001,10002421,10132000,10074794,13523543";
    $MailCode = "ReqGem";
    mysqli_query($db, "UPDATE Save SET Mailbox = CONCAT(Mailbox,'$MailCode' . '_') WHERE `id` IN($FriendIDs));
    
    • 您只需要 IN() 的括号,因为它是一个函数。
    • 不要在列名中使用单引号。使用刻度。单引号用于字符串。

    【讨论】:

    • 非常感谢。勾号和单引号之间的细微差别一直让我犯错!
    猜你喜欢
    • 2022-11-18
    • 2016-08-25
    • 2019-09-01
    • 2020-08-19
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    相关资源
    最近更新 更多