【问题标题】:How can I create a dynamic mysql query by using the values in an array?如何使用数组中的值创建动态 mysql 查询?
【发布时间】:2025-11-23 09:55:02
【问题描述】:

我是 phpmysql 的新手。我在互联网上找到了一些我可以使用的东西——比如内爆——但我做不到。我会尽量说清楚。

第一个表名:mylist

列名:id(此列上的值是唯一的。)(增量)

我将所有 id 放入一个名为 myIds 的数组中。该数组仅包含唯一的整数值,长度为 800。

我需要从另一个表中获取当前日期的每个 ID 的答案。此表还包含id 列,但对于id,可能有多个答案。

例如:今天id 1有3个答案,id 4有5个答案,以此类推

第二个表名:answerlist

这是针对指定 id 的查询:

$sql = "SELECT `answer` FROM `answerlist` WHERE `type`= 'Help' AND `id` = 1 AND DATE(`added`) = DATE (NOW())";

我想创建一个动态查询,从上面的数组中获取 id 值。我该怎么做?

【问题讨论】:

标签: php mysql


【解决方案1】:

解决方案是对您的 id 使用 mysql IN 操作

SELECT `answer`, `id` FROM `answerlist` WHERE `type`= 'Help' AND `id` IN (1,2,3,4,5) AND DATE(`added`) = DATE (NOW())

你可以像这样内爆它们:

$sql = "SELECT `answer`, `id` FROM `answerlist` WHERE `type`= 'Help' AND `id` IN (" . implode(',', $myIds) . ") AND DATE(`added`) = DATE (NOW())";

【讨论】:

  • 我认为您的解决方案容易受到SQL injection 的攻击,您应该改用准备好的查询
  • 如果用户可以更改 ID,那是正确的,我只是认为情况并非如此。如果用户可以更改 ID,那么他确实应该查看 *.com/questions/772913/…