我对此查询有疑问:
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()
。您准备并绑定(bind)一次,然后在循环中执行。 bindParam()
绑定(bind)到引用,因此您只需更新循环中的变量即可。
$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();
}
关于mysql - if - else 在一个查询中的多次更新中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59673918/