使用MySQL IN()与PHP和PDO

时间:2015-08-01 10:09:53

标签: php mysql pdo

我正在开发一个Web服务,其中一个参数是设备ID列表(energy_mon_id)。该列表以逗号分隔,例如0,1,2(其他两个参数是dateFrom和dateTo)。

我准备好的陈述如下:

$this->sql = "SELECT $vars FROM $table "

                . "WHERE energy_mon_id IN(:energy_mon_id) AND CONCAT(date, ' ', time) "
                . "BETWEEN :dateFrom AND :dateTo "
                . "$group ORDER BY $orderBy $limit";

问题在于,不是将它们识别为单独的逗号分隔字符,而是将其解释为完整的字符串(我认为)。我试图遵循这个post

我已经四处寻找并找到了完全相同的解决方案(除了我之外,它似乎对其他所有人都有用)。我很困惑,从来没有必须自己直接问一个问题,所以这是我的第一篇文章!

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

感谢您的评论,他们向我指出了一个合适的帖子。但是,为了简化可能存在类似问题的任何人,这个简单的修复工作......

而不是使用:

WHERE energy_mon_id IN(:energy_mon_id)

我用过:

WHERE find_in_set(energy_mon_id, :energy_mon_id)