php - MySQL 更新的多个 PHP `` `for ``` 循环

标签 php mysql

我需要更新表中的单个列,但为了做到这一点,我只需要 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/

相关文章:

php - 来自两个表的 SQL 查询按两个表列排序结果

php - Laravel 5.1 强制非 WWW 和 HTTPS 不工作

php - 为什么 strftime ('%G' , strtotime ('2017-01-01' )) 产生 2016 年?

mysql - 使用 vars 进行 WordPress 后端查询

mysql - Django 查询返回一组特定的项目

mysql - 在 MySQL 中创建触发器时出错

mysql - 在同一列上选择多个位置

php - 检查集合中是否已存在对象 - Laravel

java.sql.SQLException : No suitable driver found in Netbeans

php - 如何跨子域共享 symfony2 session