更新表之前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'放在循環中通常是可以避免的。 –