PHP - 更新字段(如果在数组中)

标签 php mysql sql arrays concatenation

我正在为 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/

相关文章:

python - 用相同的 ID 更新 sqlite3 中的多行

php - 使用 PHP 和 MySql 创建考勤表

php db 查询显示某些用户数据(包括 Smarty)

php - 如何使用准备好的语句在 PHP 中输​​出 MySQL 表

php - SQL - 过滤搜索结果

mysql - MySQL 中特定客户的唯一表

php - Magento 1.7 客户/帐户 404 错误

php - 使用表来参数化 PDO 中的列/表名称

mysql - 连接超过 4 个表

java - 如何判断在 SQLite 数据库中创建的 TextView 是否被单击?