我目前正在处理一个项目,并希望创建一个可以编辑组的简单页面。我在XAMPP中一切正常并尝试将其上传到服务器,但它不会影响数据库中的任何行。这是声明:
UPDATE user_groups
SET name = 'TEST',
name_short = 'test',
color = 'green',
category = 'MMORPG'
WHERE id = 2
和
Affected rows (UPDATE): 0
答案是答案。创建新组工作正常(本地创建和编辑工作,并且自从我上传两者后,我没有更改语句中的任何内容)
This is what the row looks like that I am trying to affect
编辑:
$sql_update_info = "UPDATE user_groups SET name = '$new_title', name_short = '$new_short', color = '$new_color', category = '$new_cat' WHERE id = $group_id";
$query_update_info = mysqli_query($mysqli, $sql_update_info);
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($mysqli));
echo '<br><span style="color:white;">'.$sql_update_info.'</span>';
单击按钮时,PHP部分是什么样的。
答案 0 :(得分:1)
1st:尝试使用预准备语句来避免sql注入。
第二名: Execute()
将返回true或false,因此您需要处理如下错误。
$stmt = $mysqli->prepare("UPDATE user_groups SET name = ?, name_short = ?, color = ?, category = ? WHERE id = ?");
$stmt->bind_param('ssssi', $new_title, $new_short, $new_color, $new_cat, $group_id);
//The argument may be one of four types:
//i - integer
//d - double
//s - string
//b - BLOB
//change it by respectively
$r = $stmt->execute();
if(!$r){
echo $stmt->error;
}else{
$row_count= $stmt->affected_rows;
}
$stmt->close();
$mysqli->close();