簡體   English   中英

當用戶編輯配置文件時,使用 mysql/php 更新數據庫中的表

[英]Update table in database using mysql/php when profile is edited by user

我使用本地 phpmyadmin 作為我的數據庫(MYSQL),我正在做這樣的事情,我不知道為什么這段代碼沒有更新數據庫中的表。 我能夠從數據庫中獲取數據並將其顯示在所需的頁面和位置上。

<?php
    session_start();
    require('db.php');
    $id = session_id();
    $query = "SELECT * from new_record where id='" . $id . "'";
    $result = mysqli_query($con, $query) or die (mysqli_error());
    $row = mysqli_fetch_assoc($result);
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Update Record</title>
        <link rel="stylesheet" href="css/style.css"/>
    </head>
    <body>
        <div class="form">
            <h1>Update Record</h1>
            <?php
                $status = "";
                if (isset($_POST['new']) && $_POST['new'] == 1)
                {
                    $id = session_id();
                    $name = $_POST['name'];
                    $age = $_POST['age'];
                    $submittedby = $_SESSION['username'];
                    $update = "UPDATE new_record SET    name='" . $name . "', age='" . $age . "', submittedby='" . $submittedby . "' WHERE id='" . $id . "'";
                    mysqli_query($con, $update) or die(mysqli_error());
                    $status = "Record Updated Successfully. </br></br><a href='personal-profile.php'>View Updated Record</a>";
                    echo '<p style="color:#FF0000;">' . $status . '</p>';
                }else {
            ?>
            <div>
                <form name="form" method="post" action="">
                    <input type="hidden" name="new" value="1"/>
                    <input name="id" type="hidden" value="<?php echo $row['id']; ?>"/>
                    <p><input type="text" name="name" placeholder="Enter Name" required value="<?php echo $row['name']; ?>"/></p>
                    <p><input type="text" name="age" placeholder="Enter Age" required value="<?php echo $row['age']; ?>"/></p>
                    <p><input name="submit" type="submit" value="Update"/></p>
                </form>
                <?php } ?>
            </div>
        </div>
    </body>
</html>
  1. 正如評論中提到的 - 處理注入問題。

  2. session_id() 計入您的 $id 表中沒有行。 您的表中沒有將 MySQL 列 id 與當前 session_id() 匹配的行。 您仍將顯示您的表單,但沒有姓名和年齡值。 當您填寫並提交時,它需要更新表中不可用的現有行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM