php - 更新命令在 PHP 中无法正常工作

标签 php mysql

$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/

相关文章:

php - laravel eloquent 中的联合运算符

javascript - 谷歌折线图将时间转换为数字

php - MySQL - 如果两个加数相同,则增加总和值

mysql - Go&Beego 如何从数据库中获取数据?

mysql - 数据库设计 : How should I add an information which can apply to several tables

php - 在 laravel php 中注册新用户时更新多个用户详细信息

mysql - 我如何通过多个值过滤一列(严格过滤)?

php - MySQL插入多次

php - SQL Select 使用同一表中的不同参数

php - 将首字母转换为大写字母但仅适用于大写字符串 - PHP