[英]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.