$query = "UPDATE members SET userrole ='$userrole' WHERE member_id = '$member_id'";
有时更新有时不更新...不知道语法对不对
userrole 和 member_id 具有值数组。更新查询针对多个正在检查的项目执行。
mysql连接没有错误或error....第一次更新没有发生,之后发生了
最佳答案
如果两个变量都包含数组,这将无法工作。您需要一项一项地更新(或使用笨拙的 MySql CASE 语句,在此不做解释):
foreach ($userrole as $key => $role) {
$query = "UPDATE members SET userrole ='$role'
WHERE member_id = '$member_id[$key]'";
// perform query ...
}
或者如果只有 $member_id 是一个数组:
$query = "UPDATE members SET userrole ='$userrole'
WHERE member_id IN ('" . implode(',', $member_id) . "')";
// perform query ...
您应该进一步重命名您的变量以反射(reflect)它们是数组。只需使用复数:
$userrole => $userroles
$member_id => $member_ids
关于更多的事情:这些值是否来自 HTML 表单?如果是,you should really使用 mysql_escape_string()
对它们进行 sanitizer .这可以使用 array_map()
一次对多个值完成:
$userroles = array_map('mysql_escape_string', $userroles);
$member_ids = array_map('mysql_escape_string', $member_ids);
关于php - 更新命令在 PHP 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1130247/