我有一个充满随机内容项ids的数组。我需要运行一个mysql查询(数组中的ID放在WHERE子句中),按照它们在数组中出现的顺序,使用数组中的每个ID。我该怎么做呢?
对于数组中的每个单独ID,这将是一个更新查询。
发布于 2008-12-01 08:20:34
使用"IN“从句
可能就是你想要的
$ids = array(2,4,6,8);
$ids = implode($ids);
$sql="SELECT * FROM my_table WHERE id IN($ids);";
mysql_query($sql);
否则,有什么问题吗?
$ids = array(2,4,6,8);
foreach($ids as $id) {
$sql="SELECT * FROM my_table WHERE ID = $id;";
mysql_query($sql);
}
发布于 2008-12-01 08:47:11
阿门感谢Tomalak对声明的评论。
但是,如果您不希望使用mysqli,则可以始终使用intval()来防止注入:
$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]));
}
发布于 2008-12-01 09:02:49
$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
}
https://stackoverflow.com/questions/330268
复制相似问题