0

我正在尝试使用不同的 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']));

这必须是更好的方法吗?好像一点都不好,但我不知道怎么做。

4

2 回答 2

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']));
于 2013-07-22T22:58:42.220 回答
1

你为什么不参数化 id 为好。这样你就可以让它更通用一点。

于 2013-07-22T22:59:11.177 回答