Я пишу php для обновления баланса пользователя, но мой запрос UPDATE выдает ошибку при его выполнении.
$student = $database->quote($_POST ["studentID"]);
$amount = $database->quote($_POST ["update_balance"]);
//sets query to update user balance
$query = "UPDATE `User` SET `balance`= (`.$amount.`) WHERE `userID`= (`.$student.`)";
//excecutes the query
$database->exec($query);
‘StudentID’ и ‘update_balance’ являются именами полей ввода, захваченных в HTML.
удалить (`. вещи. и запустить SQL запрос
$query = "UPDATE `User` SET `balance`= '$amount' WHERE `userID`= '$student'";
Вы должны использовать подготовленные операторы, так как это считается намного безопаснее, чем любой механизм экранирования строк:
$statement = $somePdoInstance->prepare("UPDATE user SET balance = :balance WHERE userId = :user_id");
$statement->execute(array(
"balance" => $amount, // the values from POST
"user_id" => $student
));
Теперь ваш запрос на обновление должен работать нормально, и это намного безопаснее.