PHP/HTML:MySQL表未更新
我想用PHP更新MySQL中的students表,但它不起作用,我不知道我犯了什么错误:/ 这是我的密码 顺便说一句,我在id周围加了引号,因为它的varchar不是int 它只是说数据没有更新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
// 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天哪!在发布答案之前,你需要认真遵守一些规则。根据规则设置答案的格式。