所以我有这个代码来更新我的数据库中的表。 $C1
,$C2
等是先前计算的一组数组:
$Cupdate = array($C1, $C2, $C3, $C4, $C5, $C6);
array_unshift($Cupdate, null);
$Cfinalupdate = call_user_func_array('array_map', $Cupdate);
if(is_array($Cfinalupdate)){
$valuesArr = array();
foreach($Cfinalupdate as $row){
$sqlup = "UPDATE tempselect SET ";
$C1up = mysql_real_escape_string( $row['0'] );
$C2up = mysql_real_escape_string( $row['1'] );
$C3up = mysql_real_escape_string( $row['2'] );
$C4up = mysql_real_escape_string( $row['3'] );
$C5up = mysql_real_escape_string( $row['4'] );
$C6up = mysql_real_escape_string( $row['5'] );
$valuesArr[] = "C1 = '$C1up', C2 = '$C2up', C3 = '$C3up', C4 = '$C4up', C5 = '$C5up', C6 = '$C6up'";
$sqlup .= implode(',', $valuesArr);
mysql_query($sqlup) or exit(mysql_error());
}
}
但上面的代码只放了$Cfinalupdate
的最后一行,假设我想更新我的数据库就像这样:
C1 C2 C3 C4 C5 C6
1 4 2 3 1 5
6 2 4 1 2 7
8 1 2 5 4 6
但是当我在数据库表中看到时,结果却是这样:
C1 C2 C3 C4 C5 C6
8 1 2 5 4 6
8 1 2 5 4 6
8 1 2 5 4 6
我已经尝试将此代码INSERT
一组数组导入数据库,但它运行完美,但为什么它只更新数组的最后一行?谢谢。
答案 0 :(得分:0)
这很简单......
正如Fred -ii-所说:
WHERE
子句指定应更新的记录。如果省略WHERE
子句,则所有记录都将更新!