SQL UPDATE语句不影响任何行(PHP)
我目前正在做一个项目,想做一个简单的网页,我可以编辑组。我在XAMPP中一切正常,并尝试将其上载到服务器,但它不会影响数据库中的任何行。以下是语句: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
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
并将其粘贴到此处。。