обновление запроса mysql с помощью php

#php #mysql

#php #mysql

Вопрос:

пожалуйста, помогите мне понять, почему этот запрос на обновление не обновит мою запись в базе данных? я знаю, что есть куча похожих вопросов, и я их тоже читал, но все равно я не знал, что не так…

вот как я ввожу:

 <form class="mx-3 my-3" role="form" method="post" action="buka_akun.php">
        <div class="form-group">
            <label for="InputUserName" class="font-weight-bold">Username</label>
            <input type="text" class="form-control" name="inputUserName" id="inputUserName" aria-describedby="InputUserNameHelp" placeholder="Masukkan username Anda...">
        </div>          
        <button type="submit" class="btn btn-primary border-0 mr-2" name="buttonBukaAkun" style="background-color: rgba(18, 137, 167,1.0);">Buka Absen</button>
        <button type="submit" class="btn btn-primary border-0 mr-2" name="buttonTutupAkun" style="background-color: rgba(18, 137, 167,1.0);">Tutup Absen</button>
</form>
  

мой php:

 <?php
    include("header.php");
    include("db_connect.php");

    $flag = 0;

    if(isset($_POST['buttonBukaAkun'])){
        $username = $_POST['inputUserName'];

        $query_buka_akun = "UPDATE 'user_login' SET 'activate' = '1' WHERE 'username' = '$username'";

        $result_buka_akun = mysqli_query($connection, $query_buka_akun);

        if($result_buka_akun){
            $flag = 1;
        }
    }

    if(isset($_POST['buttonTutupAkun'])){
        $username = $_POST['inputUserName'];

        $query_tutup_akun = "UPDATE 'user_login' SET 'activate' = '0' WHERE 'username' = '$username'";

        $result_tutup_akun = mysqli_query($connection, $query_tutup_akun);

        if($result_tutup_akun){
            $flag = 1;
        }
    }
?>
  

таблица базы данных:

 CREATE TABLE user_login(
id_login int(255) PRIMARY KEY AUTO_INCREMENT,
username varchar(255),
password varchar(255),
level varchar(255),
activate int(2));
  

Ответ №1:

Для отправки замените <button> тег на <input type='submit'> .

 <input type="submit" class="btn btn-primary border-0 mr-2" name="buttonBukaAkun" style="background-color: rgba(18, 137, 167,1.0);" value="Buka Absen" />
  

И не заключайте имя столбца таблицы в кавычки.

 $query_buka_akun = "UPDATE user_login SET activate = '1' WHERE username = '$username'";
  

Ответ №2:

Сначала вы должны экранировать свои данные POST.

Зачем использовать ‘ в вашем заявлении?

 "UPDATE 'user_login' SET 'activate' = '1' WHERE 'username' = '$username'";
  

должно выглядеть следующим образом

 'UPDATE `user_login` SET `activate` = '1' WHERE `username` = '.$username;