строка удалена, но PHP не удаляется из базы данных + сообщение об ошибке отсутствует - PullRequest
0 голосов
/ 19 мая 2019

Перед тем, как уйти, я ЗНАЮ, что об этом уже спрашивали, я только что увидела 4 или 5 сообщений на форуме, ТОЛЬКО указывающих на эту проблему, но ни одно из них не устранило мою проблему!

У меня есть база данных MySQL. Я выполняю GetAll и заполняю Tabledit данными. Каждая строка имеет кнопку Удалить. Я удаляю строку. Ряд исчезает, все в консольных логах говорит об успехе. Когда я F5 страницы, удаленная строка появляется снова, потому что она не была действительно удалена в базе данных. Так что проблема связана с PHP.

Главное, что я пытался изменить в своем запросе, так как я догадывался, что это проблема, а также то, как я его выполняю. Скажем так, я перепробовал все способы, и когда меня это раздражало, я решил прекратить использовать переданный идентификатор и просто жесткий код WHERE ID = 5 в запросе, но все равно ничего не получилось, поэтому я просто вернулся к переданному идентификатору так как это не было проблемой, я действительно не знаю, почему запрос не будет работать, но это 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, я тоже об этом думал, но я использую ID везде, в моей БД, в html и в ajax http://prntscr.com/nqf6v0 http://prntscr.com/nqf6k2 так что я уверен, что это не так

1 Ответ

0 голосов
/ 19 мая 2019

ОБНОВЛЕНИЕ ПОПЫТКА СЕЙЧАС:

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

отлично работал

...