我想将数组转换成逗号分隔值的字符串,以便在MySQL UPDATE查询中使用。我该怎么做?
答案 0 :(得分:13)
implode(',', $array);
答案 1 :(得分:13)
请记住逃避价值观:
'"' . implode('","', array_map('mysql_real_escape_string', $data)) . '"'
答案 2 :(得分:2)
确保在执行查询之前通过mysql_real_escape_string()传递结果。如果你像其他人所说的那样使用implode(),这应该可以防止sql注入。
正如nickf提到的那样,总是检查以确保数组不是空的或者先是null,并处理这些情况。因为你只处理int,所以在你的赋值中放一些类型检查也没什么坏处,否则如果一个字符串以某种方式滑落你就会得到sql错误。
答案 3 :(得分:1)
通常这种情况是人们从另一个表构建数组以用于第二个查询。如果是这种情况,您可以使用子查询来完成此操作。
EG。 UPDATE表SET列=值WHERE ID IN(从表2中选择ID ID条件)
答案 4 :(得分:0)
如果所有ID都应该是数字的话,这可能会更好。 检查它是否包含至少一个带
的整数$ids = array_filter($ids, 'is_int');
if (!$ids) {
//no valid ids returned.
die('or something');
}
$sql .= '(' . implode(',', $ids) . ')';