Mysql 在一个查询中的多个更新中的if-else

Mysql 在一个查询中的多个更新中的if-else,mysql,if-statement,updates,Mysql,If Statement,Updates,我对此查询有疑问: foreach ($_POST['cod'] as $i => $cod) { $sth = $conn->prepare("UPDATE LPRODALMACEN SET `existencia` = `existencia` + :comprado WHERE `cod` = :cod"); $sth->bindParam(':comprado', $tExiste[$i]); $sth->bindParam(':cod',

我对此查询有疑问:

foreach ($_POST['cod'] as $i => $cod) {
    $sth = $conn->prepare("UPDATE LPRODALMACEN SET `existencia` = `existencia` + :comprado WHERE `cod` = :cod");
    $sth->bindParam(':comprado', $tExiste[$i]);
    $sth->bindParam(':cod', $_POST['cod'][$i]);
    $sth->execute();
    $i++;
}
如果条件为1或0,我需要使用以下命令生成if-else:

$_POST['medida'][$i] == '0' ? $_POST['comprado'][$i] : $_POST['tExiste'][$i];

如果$medida为==0,则添加
$comprado
中的值;如果medida为==1,则添加
$tExiste
中的值,则如何将其放入查询中?

根据条件设置变量

此外,您不需要在循环中使用
prepare()
bindParam()
。准备并绑定一次,然后在循环中执行
bindParam()
绑定到引用,因此只需更新循环中的变量

$sth = $conn->prepare("UPDATE LPRODALMACEN SET `existencia` = `existencia` + :comprado WHERE `cod` = :cod");
$sth->bindParam(":comprado", $comprado);
$sth->bindParam(":cod", $cod);
foreach ($_POST['cod'] as $i => $cod) {
    $comprado = $_POST['medida'][$i] == '0' ? $_POST['comprado'][$i] : $_POST['tExiste'][$i];
    $sth->execute();
}

是否要设置:comprado取决于$u POST['medida'][$i]是什么?@nbk,是的,这就是我需要的。