使用while循环选择并更新同一行


Select and update the same row using while loop

有一个循环查询(while循环)从表中选择2列值,然后代码求和2值,我需要的是用求和值更新另一列>下面是代码:

$stmt = $conn->prepare('select value1, value2, valuse3  from  eg.table limit ? ');
$stmt->bind_param('i',$limit);
$stmt->execute();
$stmt->bind_result($value1, $value2,$value3);
$arr = array();
while($stmt->fetch()) {
$row = array();
array_push($arr, $row);
$newvalue=($value1+$value2);
$stmt1 = $conn->prepare("UPDATE eg.table SET eg.column=? WHERE  eg2.column=?");
$stmt1->bind_param('ii',$newvalue , $value3);
$stmt1->execute();
}

当我使用这个查询时,我得到了这个错误:致命错误:在C:'xampp'htdocs'so'new'socialrank.php中调用布尔值上的成员函数bind_param()

如果你有另一个解决方案来实现使用mysql的工作,这是好的。任何帮助都将不胜感激。

我找到解决办法了。这个查询做同样的事情,我正在寻找:

$sql = ("UPDATE eg.table AS c1, eg.table AS c2 
SET c1.eg.column = (c2.value1 + c2.value2)
WHERE c2.eg2.column = c1.eg2.column
");

注意:这个解决方案的灵感来自@CakePHP答案