更新查询更新

时间:2013-07-22 22:48:39

标签: 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("
    UPDATE base_resources
    SET value = value + ?
    WHERE resource_id = 2
    AND base_id = ?");
$stmt->execute(array($update_wool, $_SESSION['baseid']));

这一定是更好的方法吗?它似乎没有任何好处,但我不知道如何。

2 个答案:

答案 0 :(得分:3)

准备好的陈述可以重复使用......

    $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']));

答案 1 :(得分:1)

为什么不对id进行参数化。这样你可以使它更通用。