我需要更新表中的单个列,但为了做到这一点,我只需要 2 个 for
循环。但问题是这并没有发生。
而不是得到这样的东西:
UPDATE sample_var set var_id="82" where id=195288
UPDATE sample_var set var_id="83" where id=195289
UPDATE sample_var set var_id="84" where id=195290
UPDATE sample_var set var_id="85" where id=195291
(我只是echo $sql;
看看我会得到什么)
我明白了:
UPDATE sample_var set var_id="82" where id=195288
UPDATE sample_var set var_id="83" where id=195288
UPDATE sample_var set var_id="84" where id=195288
UPDATE sample_var set var_id="85" where id=195288
当我执行以下语句时,数据只会覆盖自身,使每个更新的行保留最后一个值(在本例中,每行 var_id=85)。
这是我用于此特殊情况的代码块:
for($i=0;$i<$foo_count;$i++){
for($a=0;$a<$bar_count;$a++){
$update_SQL= 'UPDATE sample_var set var_id="'.$bar[$a][0].'" where id='.$foo[$i][0];
DataBase::ExecuteStatement($update_SQL);
}
}
如何避免此类问题?
提前谢谢:D
最佳答案
应该是这样的:
$bar = array('82','83','84','85');
$foo = array(195288,195289,195290,195291);
$bar_count = count($bar);
for($a=0;$a<$bar_count;$a++){
$update_SQL= 'UPDATE sample_var set var_id="'.$bar[$a].'" where id='.$foo[$a];
DataBase::ExecuteStatement($update_SQL);
}
关于php - MySQL 更新的多个 PHP `` `for ``` 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36743282/