Sql 使此更新查询变得更好

Sql 使此更新查询变得更好,sql,Sql,我正在尝试使用不同的id更新某些行,目前我正在使用多个查询来执行此操作: $stmt = $db->prepare(" UPDATE base_resources SET value = value + ? WHERE resource_id = 1 AND base_id = ?"); $stmt->execute(array($update_ore, $_SESSION['baseid'])); $stmt = $db->prepare("

我正在尝试使用不同的id更新某些行,目前我正在使用多个查询来执行此操作:

$stmt = $db->prepare("
    UPDATE base_resources
    SET value = value + ?
    WHERE resource_id = 1
    AND base_id = ?");
$stmt->execute(array($update_ore, $_SESSION['baseid']));

$stmt = $db->prepare("
    UPDATE base_resources
    SET value = value + ?
    WHERE resource_id = 2
    AND base_id = ?");
$stmt->execute(array($update_wool, $_SESSION['baseid']));

这一定是一个更好的方法?它看起来一点也不好,但我不知道怎么做。

准备好的语句可以重用

    $ore = 1;
    $wool = 2;

    $stmt = $db->prepare(" 
                   UPDATE base_resources
                  SET value = value + ? 
                  WHERE resource_id = ? 
                  AND base_id = ?"); 

    $stmt->execute(array($update_ore, $ore, $_SESSION['baseid'])); 

    $stmt->execute(array($update_wool, $wool, $_SESSION['baseid']));

准备好的语句可以重用

    $ore = 1;
    $wool = 2;

    $stmt = $db->prepare(" 
                   UPDATE base_resources
                  SET value = value + ? 
                  WHERE resource_id = ? 
                  AND base_id = ?"); 

    $stmt->execute(array($update_ore, $ore, $_SESSION['baseid'])); 

    $stmt->execute(array($update_wool, $wool, $_SESSION['baseid']));

为什么不把id也参数化呢。这样可以使它更通用。

为什么不将id也参数化呢。这样你可以让它更通用一些