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

标签 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', $_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/

相关文章:

css - 使 CSS 仅在 IE 上工作而无需单独的 CSS 表的通用方法

java - if 和 for 循环之间的空指针区别

java - Spring Boot 2.0 中的 EmbeddedServletContainerAutoConfiguration 和 ServerPropertiesAutoConfiguration

android - Google Play - 为现有用户而非新用户更新未发布的应用程序?

updates - 错误 : Update could not be validated. 确保网络安全并重试。

mysql - 如何在 perl dbi 中为 mysql 连接设置 CLIENT_MULTI_RESULTS 标志

mysql - 如何增加 mysqld-nt CPU 使用率

尝试导出或导入时 Mysql 卡住了

if-statement - 分离 G1 ; G2 vs. If-then-else Cond -> G1 ; G2

php - 选项菜单从不同的价格到具有价格范围的选项