PHP循环更新SQL列时所有行值相同,求问题原因及解决方法
问题分析与解决方案
你的代码核心问题是每次循环都更新了id 32到61之间的所有行:
循环执行30次,每一轮都会把这个区间内所有行的image字段覆盖为当前循环的$fmle_img值。最后一轮循环时$count=30,所以所有行最终都会被设置成u30.png。
修正后的代码
$count = 1; while ($count <= 30) { $fmle_img = "_src/img/profile/female/u$count.png"; // 每次只更新对应id的行:id从32(31+1)到61(31+30) $db->query("UPDATE users SET image=:image WHERE id = :id", array( ':image' => $fmle_img, ':id' => 31 + $count )); $count++; }
说明
修改后每次循环只会更新id = 31 + $count的单行,对应count从1到30,正好匹配id 32到61的所有行,每个id会被设置为对应的u1.png到u30.png。
内容的提问来源于stack exchange,提问作者Max Njoroge
相关产品推荐
相关产品推荐

