在您离开之前,我知道这已经被问过了,我只看到4或5个论坛帖子完全指出了这个问题,但是没有一个可以解决我的问题!
我有一个MySQL数据库。我执行GetAll并用数据填充Tabledit。每行都有一个“删除”按钮。我删除一行。行消失,控制台日志中的所有内容均表示成功。在页面上按F5时,将再次显示已删除的行,因为在数据库中并未真正删除该行。因此,问题与PHP有关。
我尝试的主要事情是围绕查询进行更改,因为这是问题所在以及执行方式。 假设我尝试了所有方法,但当我感到烦恼时,我决定停止使用传递的ID,而只是在查询中使用WHERE ID = 5的硬代码,仍然无法正常工作,因此我只是回到了传递的ID既然那不是问题,我真的不知道为什么查询不起作用,但是100%是PHP而不是javascript / html。
既然我的ajax执行良好,我将发布我的php代码,如果您希望我发布任何ajax,请随时向我询问。
我还将指出如何删除我现在不需要的所有内容,例如检查动作是否为删除,所有编辑内容,如果简单删除无法正常工作,为什么还要拥有所有这些内容。
$connect = mysqli_connect(won't post my connection stuff, but I know it works since I use the same connect to perform the GetAll somewhere else, and that works fine);
$input = filter_input_array(INPUT_POST);
$query = "DELETE FROM User WHERE ID = '".$input["ID"]."'";
mysqli_query($connect, $query);
echo json_encode($input);
我曾经有mysqli_close($ con);最后也删除了它,添加它并不能解决问题,我不确定我是否需要
当我删除该行时,它消失了,这是已记录的内容,一切似乎都很好,发送的json看起来不错,所有消息都导致它认为是成功的
onDraw()
zz.php:143 onAjax(action, serialize)
zz.php:144 delete
zz.php:145 ID=5&action=delete
zz.php:124 onSuccess(data, textStatus, jqXHR)
zz.php:125 {ID: "5", action: "delete"}ID: "5"action: "delete"__proto__: Object
zz.php:126 success
zz.php:127 {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}abort: ƒ (a)always: ƒ ()complete: ƒ ()done: ƒ ()error: ƒ ()fail: ƒ ()getAllResponseHeaders: ƒ ()getResponseHeader: ƒ (a)overrideMimeType: ƒ (a)pipe: ƒ ()progress: ƒ ()promise: ƒ (a)readyState: 4responseJSON: {ID: "5", action: "delete"}responseText: "{"ID":"5","action":"delete"}"setRequestHeader: ƒ (a,b)state: ƒ ()status: 200statusCode: ƒ (a)statusText: "OK"success: ƒ ()then: ƒ ()__proto__: Object
zz.php:140 onAlways()
很难读,所以这是屏幕截图http://prntscr.com/nqf5o0
ps:另外我必须指出,我无法添加任何内容来打印错误或任何内容,因为语法不允许我这样做,如果我在php中添加了其他内容,则会将json拧为某些原因会阻止ajax正常运行,所以我真的在这里盲目调试
ps2:如果您可能认为ID应该是ID,我也曾想过,但是我在数据库,HTML和Ajax http://prntscr.com/nqf6v0 http://prntscr.com/nqf6k2中到处都使用ID,所以我很确定那不是
答案 0 :(得分:0)
立即更新尝试:
$ID = mysqli_real_escape_string($connect, $input["ID"]);
$Username = mysqli_real_escape_string($connect, $input["Username"]);
$Password = mysqli_real_escape_string($connect, $input["Password"]);
$Email = mysqli_real_escape_string($connect, $input["Email"]);
$Nickname = mysqli_real_escape_string($connect, $input["Nickname"]);
$GameMoney = mysqli_real_escape_string($connect, $input["GameMoney"]);
$ProfilePlayer = mysqli_real_escape_string($connect, $input["ProfilePlayer"]);
$ProfileAdmin = mysqli_real_escape_string($connect, $input["ProfileAdmin"]);
$DuelTotal = mysqli_real_escape_string($connect, $input["DuelTotal"]);
$DuelWon = mysqli_real_escape_string($connect, $input["DuelWon"]);
$Banned = mysqli_real_escape_string($connect, $input["Banned"]);
mysqli_query($connect, "UPDATE User SET `Username` = '{$Username}', `Password` = '{Password}', `Email` = '{$Email}', `Nickname` = '{$Nickname}', `GameMoney` = '{$GameMoney}', `ProfilePlayer` = '{$ProfilePlayer}', `ProfileAdmin` = '{$ProfileAdmin}', `DuelTotal` = '{$DuelTotal}', `DuelWon` = '{$DuelWon}', `Banned` = '{$Banned}' WHERE `ID` = $ID");
我也尝试过
$query = "
UPDATE User
SET Username = '".$Username."',
Password = '".$Password."',
Email = '".$Email."',
Nickname = '".$Nickname."',
GameMoney = '".$GameMoney."',
ProfilePlayer = '".$ProfilePlayer."',
ProfileAdmin = '".$ProfileAdmin."',
DuelTotal = '".$DuelTotal."',
DuelWon = '".$DuelWon."',
Banned = '".$Banned."',
WHERE ID = '".$input["ID"]."'
";
mysqli_query($connect, $query);
发生同样的事情,html和javascript可以正常工作,但是不会更新数据库。我开始认为这与权限相关,但是为什么我不能执行删除或更新查询,但是
$query = "SELECT * FROM User ORDER BY id DESC";
$result = mysqli_query($connect, $query);
工作完美