我正在学习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')";
但是,请注意,通常使用准备好的语句比直接插入查询更可取。