MySQL错误:未知列';d';在';字段列表';


MySQL Error: Unknown column 'd' in 'field list'

我正在学习MySQL的W3Schools教程,似乎有些代码已经过时,或者我只是错过了一些非常愚蠢的东西。在试图将信息传递到数据库时,我得到了以下错误:

错误:"字段列表"中的未知列"d"

我正试图传递表单提交中的信息,然后链接到此页面,在那里它会获取用户输入的信息,以在数据库中创建一个新条目。

这是表单提交的代码。

<html>
<body>
<form action="3ainsert.php" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>
</body>
</html>

这是另一页的代码:

<?php
$con=mysqli_connect();
// Check connection
if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
$lastname = mysqli_real_escape_string($con, $_POST['lastname']);
$age = mysqli_real_escape_string($con, $_POST['age']);
$sql="INSERT INTO persons (FirstName, LastName, Age)
VALUES ($firstname, $lastname, $age)";
if (!mysqli_query($con,$sql))
{
  die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>

您的查询没有将值括在引号中:

$sql="INSERT INTO persons (FirstName, LastName, Age)
VALUES ('$firstname', '$lastname', '$age')";

但是,请注意,通常使用准备好的语句比直接插入查询更可取。