繁体   English   中英

MySQL 更新查询在 LOOP 中无法正常工作

[英]MySQL update query is not working correctly in a LOOP

我有一个非常烦人的问题,与在循环中更新多个表行有关。 我的代码只更新第一行而不更新其他行。 事实上,它在更新其他行时会引发错误。

这是我的原型简要代码:

// This query returns multiple rows
$query = "SELECT * FROM `table_name` ...";
$rs = mysqli_query($con, $query);

if(mysqli_num_rows($rs) != 0)
{
    while($row = mysqli_fetch_array($rs))
    {
        $column_name= $row['column_name'];
        ...
        ...
        ...

        // This update query only updates first row which matches the given condition. On second loop, it throws an error.
        $update = "UPDATE `table_name` SET `column_name` = '" . mysqli_real_escape_string($con, $column_name) . "', ... ";
        $rs = mysqli_query($con, $update);
    }
}

所以我上面的代码只成功运行了一次。 第二次尝试时,它输出以下错误:

警告:mysqli_fetch_array() 期望参数 1 是 mysqli_result,布尔值在 C:\\wamp\\www\\test\\update.php 第 11 行给出

这是我第一次尝试在循环中运行更新查询。 我以前从未使用过它。 我想我可能做错了一切。 解决我的问题的解决方案是什么,或者有什么更好的方法来实现?

编辑

哎呀!!! 更新查询后再次不必要的 $rs ,这让我发疯了!

第一次更新后,您将覆盖$rs值。 所以在那之后你不能再做一次mysqli_fetch_array($rs) ,因为$rs不是第一个mysqli_query()

$rs2 = mysqli_query($con, $update);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM