非常简单的MySQL语法错误,我是新手


VERY easy MySQL syntax error, I'm new to this

我正在尝试制作一个非常基本的表单,将名、姓和年龄添加到一个非常基本的名为Test的数据库。下面是我的HTML代码:

<html>
<head>
</head>
<body>
<h1>Welcome!</h1>
<br>
<form action="insert.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>
<input type="submit">
</form>
</body>
</body>
</html>

这是我的PHP代码,隐藏了数据库名称,主机和登录信息:

<?php
$con=mysqli_connect("HOST","USER","PASS","DB");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
$sql=   "INSERT INTO Test ('First Name', 'Last Name', 'Age')
        VALUES
        ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "1 record added";
mysqli_close($con);
?>

这是我在表单中输入数据并提交时的错误。我被引导到这个页面:

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''First Name', 'Last Name', 'Age') VALUES ('Robert','Maxwell','18')' at line 1

变化

$sql=   "INSERT INTO Test ('First Name', 'Last Name', 'Age')

$sql=   "INSERT INTO Test (`First Name`, `Last Name`, `Age`)

; -)

你的查询是不正确的,你不会有空格在你的列表-他们必须是驼峰大小写(FirstName)或下划线(first_name)

    $sql=   "INSERT INTO Test (`First_Name`, `Last_Name`, `Age`)
    VALUES
    ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

    $sql=   "INSERT INTO Test (`FirstName`, `LastName`, `Age`)
    VALUES
    ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

注意:不要在生产环境中使用,你的查询是暴露的。注意保护您的查询免受SQL注入。