解决
第1行,第4行和第10行的字段中包含单引号字符,所以我自己注入了SQL。更多理由改用准备好的陈述!
我有一个从我的PHP表单发送的非常简单的批量UPDATE查询,奇怪的是,它只影响某些行。第1行,第4行和第10行未更新;但所有其他行都会更新。
以下是查询:
$query = "SELECT * FROM SkillDescriptions";
$result = mysql_query($query);
for ($i=1; $i<=mysql_num_rows($result); $i++){
$skillKey = 'Skill' . (string)$i;
$categoryKey = 'Category' . (string)$i;
$descriptionKey = 'Description' . (string)$i;
$sql="UPDATE SkillDescriptions SET
Skill='$_POST[$skillKey]',
Category='$_POST[$categoryKey]',
Description='$_POST[$descriptionKey]'
WHERE id='$i'
";
$result2=mysql_query($sql);
}
我有一个并行表单,它完成与此表格完全相同的PHP表单处理,但有一个不同的数据库表,它可以正常工作:所以问题很可能在于数据库表(配置?)而不是代码
为什么只有某些行以看似随机的方式更新?
更新
在:
http://i.stack.imgur.com/2hk2l.png
之后:(我将测试附加到列中)