更新表之前UPDATE
ROLLNO NAME ATTENDANCE DAY MONTH YEAR
1 Name1 PRESENT 16 04 2016
2 Name2 PRESENT 16 04 2016
3 Name3 PRESENT 16 04 2016
更新我试图改变出勤后“缺席“每个人都
但是更新后发生的事情是
ROLLNO NAME ATTENDANCE DAY MONTH YEAR
3 Name3 ABSENT 16 04 2016
3 Name3 ABSENT 16 04 2016
3 Name3 ABSENT 16 04 2016
这里是代码次在更新数据库。但是这里的问题是整个表格在更新时填充了最后一行的值。我已经回显了foreach中的值来检查存储和传递的值是否正确,并且是完美的。问题是在更新到数据库时
foreach ($name_array as $key => $name_values) {
$name_values = mysqli_real_escape_string($connection,$name_values);
$roll_values = mysqli_real_escape_string($connection,$roll_array[$key]);
$att_values = mysqli_real_escape_string($connection,$att_array[$key]);
echo $name_values."<br>";
echo $att_values."<br>";
echo $roll_values."<br>";
$sql= "UPDATE `aclass10` SET
Name='".$name_values.
"',attendance='".$att_values.
"',RollNo='".$roll_values.
"',day='".$day.
"',month='".$month.
"',year='".$year.
"'WHERE day='".$day."'";
$result = mysqli_query($connection,$sql);
}
我在做什么错误以及如何解决?
在where子句中,您必须使用唯一值进行更新。 –
**警告**:使用'mysqli'时,您应该使用参数化查询和['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)添加用户数据到您的查询。 **不要**使用字符串插值或连接来实现这一点,因为如果您忘记逃离某些东西,您可以非常轻松地创建严重的[SQL注入漏洞](http://bobby-tables.com/)。 – tadman
你应该显示整个逻辑。将'update'放在循环中通常是可以避免的。 –