我使用逗号分隔的字符串变量爆炸填充了一个数组。现在我需要访问数组中的数据。
我用过:
print_r($values); // to see how the data was stored
//output
Array (
[0] => Array (
[0] => 1rv09is001
[1] => 07IS72 )
[1] => Array (
[0] => 1RV09IS064
[1] => 07IS72 )
)
我试过了:
$a = count($values);
for($i;$i<$a;$i++){
$sql="UPDATE subject
SET attendance=attendance+1
WHERE usn=$values[$i][0] AND subCode=$values[$i][1]
";
echo "$sql";
mysql_query($sql);
}
它不起作用。
答案 0 :(得分:1)
复杂变量名称(或数组)在字符串中使用时需要用大括号括起来。此外,MySQL中的字符串需要使用引号(单'
或双"
)来指定:
$a = count($values);
for ($i = 0; $i < $a; $i++) {
$sql = "UPDATE subject SET attendance=attendance+1 WHERE usn='{$values[$i][0]}' AND subCode='{$values[$i][1]}'";
echo "$sql";
mysql_query($sql);
}
此外,在for循环中使用时,需要使用值初始化$i
。
答案 1 :(得分:0)
更新您的SQL语句:
$sql = "UPDATE subject SET attendance = attendance+1 where usn='" . $values[$i][0] . "' and subCode='" . $values[$i][1] . "'";
据我所知,$ values包含String值,需要在SQL中引用。此外,转义" . $variable . "
数组访问很有帮助。
在本地测试它并且有效。
答案 2 :(得分:0)
你应该引用进入你的sql的字符串(你也应该逃避它们)。 http://dev.mysql.com/doc/refman/5.0/en/entering-queries.html