简单的MySQL UPDATE仅影响某些行

时间:2015-01-05 01:53:51

标签: php mysql innodb

解决

第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

之后:(我将测试附加到列中)

http://i.stack.imgur.com/ObMn5.png

0 个答案:

没有答案