PHP/HTML:MySQL表未更新

PHP/HTML:MySQL表未更新,php,mysql,xampp,Php,Mysql,Xampp,我想用PHP更新MySQL中的students表,但它不起作用,我不知道我犯了什么错误:/ 这是我的密码 顺便说一句,我在id周围加了引号,因为它的varchar不是int 它只是说数据没有更新 <?php // PHP code to update data from MySQL database table if(isset($_POST['update'])) { $hostname = "localhost"; $username = "root"; $pa

我想用PHP更新MySQL中的students表,但它不起作用,我不知道我犯了什么错误:/

这是我的密码

顺便说一句,我在id周围加了引号,因为它的varchar不是int

它只是说数据没有更新

<?php

// PHP code to update data from MySQL database table

if(isset($_POST['update']))
{

   $hostname = "localhost";
   $username = "root";
   $password = "";
   $databaseName = "students";

   $connect = mysqli_connect($hostname, $username, $password, $databaseName);

   // get values form input text and number

   $id = $_POST['id'];
   $fname = $_POST['fname'];
   $lname = $_POST['lname'];
   $age = $_POST['age'];
   $country=$_POST['country'];
    $phone=$_POST['phone'];
    $email=$_POST['email'];

   // mysql query to Update data
   $query = "UPDATE `students` SET `fname`='".$fname."',`lname`='".$lname."',`Nationality`='".$country."',`PhoneNumber`=$phone,`Email`='".$email."',`age`= $age WHERE `id` = '$id'";

   $result = mysqli_query($connect, $query);

   if($result)
   {
       echo 'Data Updated';
   }else{
       echo 'Data Not Updated';
   }
   mysqli_close($connect);
}

?>

<!DOCTYPE html>

<html>

    <head>

        <title>PHP INSERT DATA USING PDO</title>

        <meta charset="UTF-8">

        <meta name="viewport" content="width=device-width, initial-scale=1.0">

    </head>
    <body>
        <form action="updating.php" method="post">
    <input type="text" name="id"  placeholder="Enter new ID"><br><br>
    <input type="text" name="fname"  placeholder="Enter new First Name"><br><br>
    <input type="text" name="lname"  placeholder="Enter new Last Name"><br><br>
    <input type="number" name="age"  placeholder="Enter new age" min="13" max="90"><br><br>
    <input type="text" name="country"  placeholder="Enter new Nationality"><br><br>
    <input type="number" name="phone"  placeholder="Enter new Phone Number"><br><br>
    <input type="text" name="email"  placeholder="Enter new Email"><br><br>
    <input type="submit" name="update" value="update">
    </form>

    </body>

</html>
我认为您的$query变量不好。检查以下查询。这应该能解决你的问题

$query = "UPDATE students SET fname= '$fname', lname = '$lname', Nationality = '$country', PhoneNumber = '$phone', Email= '$email', age = '$age' WHERE id = '$id'";

我认为你的错误是没有用单引号括起$age。无论是整数还是字符串,只要是需要更新的值,都需要用单引号将其括起来。

您的查询写得非常错误:

应该是:

$query = "UPDATE `students` SET `fname`='" . $fname . "',`lname`='" . $lname . "',`Nationality`='" . $country . "',`PhoneNumber`=" . $phone . ",`Email`='".$email."',`age`= " . $age . " WHERE `id` = '" . $id . "'";
注意:假设您的年龄和电话是整数类型的数据

在此查询之后,执行$query将是:

UPDATE `students` SET `fname`='john',`lname`='adams',`Nationality`='usa',`PhoneNumber`=456123789,`Email`='aa@bb.com',`age`= 23 WHERE `id` = '1'
UPDATE `students` SET `fname`='john',`lname`='adams',`Nationality`='usa',`PhoneNumber`='456123789',`Email`='aa@bb.com',`age`= '23' WHERE `id` = '1'
如果age和phone为CHAR,则查询如下:

在此查询之后,执行$query将是:

UPDATE `students` SET `fname`='john',`lname`='adams',`Nationality`='usa',`PhoneNumber`=456123789,`Email`='aa@bb.com',`age`= 23 WHERE `id` = '1'
UPDATE `students` SET `fname`='john',`lname`='adams',`Nationality`='usa',`PhoneNumber`='456123789',`Email`='aa@bb.com',`age`= '23' WHERE `id` = '1'
希望它能解决这个问题


感谢和问候

使用var_dump进行除虫。如果你使用var_dump$result,你会得到什么?boolfalse这就是我得到的。。但我不知道如何修复它或其他任何东西:/第一个检查是回显实际的$query并观察它,然后在SQL选项卡的phpmyadmin下对数据库运行它,看看它说了什么有趣的事情。然后问题是你的查询。仔细检查。检查所有参数的名称是否与数据库中的相同,因为我认为该查询很好。此外,为了减少问题,您可以删除查询中的所有内容。updatestudents SET fname='$fname'等等都可以正常工作。当然,您应该学会使用预先准备好的查询。谢谢。。是的,我已经学习了好几个小时了。。失去我的注意力lol顺便说一句,如果我只想更新一个字段怎么办?因为使用我的方法,你必须更新所有内容..尝试在顶部添加:$select=select*from students,其中id='$id';没有工作:/抱歉,我是php和mysql新手,所以我很困惑lol@bocanjis天哪!在发布答案之前,你需要认真遵守一些规则。根据规则设置答案的格式。