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

SQL UPDATE语句不影响任何行(PHP),php,mysql,mysqli,sql-update,Php,Mysql,Mysqli,Sql Update,我目前正在做一个项目,想做一个简单的网页,我可以编辑组。我在XAMPP中一切正常,并尝试将其上载到服务器,但它不会影响数据库中的任何行。以下是语句: UPDATE user_groups SET name = 'TEST', name_short = 'test', color = 'green', category = 'MMORPG' WHERE id = 2 $sql_update_info = "UPDATE user_groups SET name = '$new_titl

我目前正在做一个项目,想做一个简单的网页,我可以编辑组。我在XAMPP中一切正常,并尝试将其上载到服务器,但它不会影响数据库中的任何行。以下是语句:

UPDATE user_groups 
SET name = 'TEST', 
name_short = 'test', 
color = 'green', 
category = 'MMORPG' 
WHERE id = 2
$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>';
以及:

$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>';
这就是答案。创建新组效果很好(本地创建和编辑工作,我没有更改任何声明,因为我上传了这两个)

$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>';

$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>';
编辑:

$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>';
$sql\u update\u info=“update user\u group SET name='$new\u title',name\u short='$new\u short',color='$new\u color',category='$new\u cat'其中id=$group\u id”;
$query\u update\u info=mysqli\u query($mysqli,$sql\u update\u info);
printf(“受影响的行(更新):%d\n”,mysqli_受影响的行($mysqli));
回显“
”.$sql_update_info.”;

是单击按钮时PHP部分的外观。

1st:尝试使用prepared语句来避免sql注入

$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>';
2nd:
Execute()
将返回true或false,因此您需要按照如下方式处理错误

$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>';
$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代码,因为查询看起来还可以。你有自动提交功能吗?在本地主机上,您可能使用了MySQLi,但如果您将其上载到具有不同引擎的服务器上,它可能无法像在本地计算机上那样工作。如果存在错误,请尝试查看错误日志。一旦尝试在数据库中执行查询,您可以
echo$sql\u update\u info
并将其粘贴到此处。。