首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我有一个整数数组,如何在mysql查询( php)中使用每一个整数?

我有一个整数数组,如何在mysql查询( php)中使用每一个整数?
EN

Stack Overflow用户
提问于 2008-12-01 08:15:43
回答 4查看 13.3K关注 0票数 19

我有一个充满随机内容项ids的数组。我需要运行一个mysql查询(数组中的ID放在WHERE子句中),按照它们在数组中出现的顺序,使用数组中的每个ID。我该怎么做呢?

对于数组中的每个单独ID,这将是一个更新查询。

EN

回答 4

Stack Overflow用户

发布于 2008-12-01 08:20:34

使用"IN“从句

可能就是你想要的

代码语言:javascript
复制
$ids = array(2,4,6,8);
$ids = implode($ids);
$sql="SELECT * FROM my_table WHERE id IN($ids);";
mysql_query($sql);

否则,有什么问题吗?

代码语言:javascript
复制
$ids = array(2,4,6,8);
foreach($ids as $id) {
    $sql="SELECT * FROM my_table WHERE ID = $id;";
    mysql_query($sql);
}
票数 3
EN

Stack Overflow用户

发布于 2008-12-01 08:47:11

阿门感谢Tomalak对声明的评论。

但是,如果您不希望使用mysqli,则可以始终使用intval()来防止注入:

代码语言:javascript
复制
$ids  = array(2, 4, 6, 8);
for ($i = 0; $i < count($ids); $i++)
{
    mysql_query("UPDATE MyTable SET LastUpdated = GETDATE() WHERE id = " . intval($ids[$i]));
}
票数 1
EN

Stack Overflow用户

发布于 2008-12-01 09:02:49

代码语言:javascript
复制
$values_filtered = array_filter('is_int', $values);
if (count($values_filtered) == count($values)) {
    $sql = 'update table set attrib = 'something' where someid in (' . implode(',', $values_filtered) . ');';
    //execute
} else {
    //do something
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/330268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档