无法通过php更新表

我有一个学生表,其中有列Student_id,last_name,first_name,DOB,Address,Phone_Number,Gender,Class_ID和Email。我只想更新地址,电话号码,类别ID和电子邮件。它说成功了,但是没有数据被改变。请如何解决这个问题。

这是更新表格:

<form method="post" action="updatestudent.php">
                Student Id:
                <input type="number" name="student_id1" id="student_id1">
        <br>
                Address:
        <input type="text" name="Address1" id="Address1">
                <br>
                Mobile Phone_Number:
        <input type="tel" id="Phone_Number1" name="Phone_Number1" placeholder="59999999" pattern="^\d{8}$" maxlength="8"/>
        <br>

                <label for="Class_ID1">Class_ID:</label>
                <select name="Class_ID1">
        <option value="G071">G071</option>
                <option value="G072">G072</option>
                <option value="G081">G081</option>
                <option value="G082">G082</option>
                <option value="G091">G091</option>
                <option value="G092">G092</option>
                <option value="G101">G101</option>
                <option value="G102">G102</option>
                <option value="G103">G103</option>
                <option value="G111">G111</option>
                <option value="G112">G112</option>
                <option value="G113">G113</option>
                <option value="G121">G121</option>
                <option value="G122">G122</option>
                <option value="G123">G123</option>
                <option value="G131">G131</option>
                <option value="G132">G132</option>
                <option value="G133">G133</option>
                </select>
                <br>
                Email:
        <input type="email" name="Email1" id="Email1">
                <br>
        <input type="submit" value="Update Student"/>
    </form>

这是updatestudent.php

<?php
    include("db_connect.php");
    $student_id = $_POST["student_id1"];
    $Address= $_POST["Address1"];
        $Phone_Number= $_POST["Phone_Number1"];
        $Class_ID= $_POST["Class_ID1"];
    $Email= $_POST["Email1"];

    $sql  = "UPDATE Students";
    $sql .= " SET name = '".$Address."','".$Phone_Number."','" .$Class_ID."','".$Email."'";
        $sql .= " WHERE student_id = ". $student_id;

    echo $sql;

    try{
        $db->query($sql);
        echo "<br>Update successful";
    }catch(PDOException $e){
        echo $e->getMessage();} ?>
XINXIN16666 回答:无法通过php更新表

您缺少大多数列名。另外,您的代码可以进行SQL注入,您应该使用准备好的语句。

您将地址放在name列中,而不是address列中。

$stmt = $db->prepare("UPDATE Students 
    SET address = :address,phone_number = :phone,class_id = :class,email = :email
    WHERE student_id = :id");
$stmt->execute([':address' => $Address,':phone' => $Phone_Number,':class' => $Class_ID,':email' => $Email]);
本文链接:https://www.f2er.com/3085428.html

大家都在问