gpt4 book ai didi

php - SQL UPDATE 语句不影响任何行 (PHP)

转载 作者:行者123 更新时间:2023-11-28 23:11:48 25 4
gpt4 key购买 nike

我目前正在做一个项目,想制作一个可以编辑组的简单页面。我在 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 部分的外观。

最佳答案

1st :尽量使用prepared statement来避免sql注入(inject)。

2nd : 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();

关于php - SQL UPDATE 语句不影响任何行 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45670158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com