这个问题在这里已有答案:
我在PHP文件中有以下代码来处理用户填写的表单中的数据。他们输入足球比赛的数字分数预测,然后我将它们添加到数据库中,以便它们可以显示在网站的后续页面上。
$servername = "127.0.0.1";
$username = "root";
$password = NULL;
$dbname = "worldCup";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("There's been a glitch in the matrix: " . $conn->connect_error);
}
$sql = "INSERT INTO teamResults (Awinner, Arunner, Bwinner, Brunner, Cwinner, Crunner, Dwinner, Drunner) VALUES ($Awinner, $Arunner, $Bwinner, $Brunner, $Cwinner, $Crunner, $Dwinner, $Drunner)";
if ($conn->query($sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
当我这样做时,我得到一个错误,说“未知列”俄罗斯“在字段列表中”。 “俄罗斯”是第一个变量的内容,Awinner。谁知道这里发生了什么?
注意:从其他网页上的数据库读取时,它工作正常,并读取我通过MySQL手动放入数据库的默认占位符数据。 AFAIK连接到实际的MySQL数据库不是问题。可能在MySQL数据库的实际设置中有什么东西需要激活才能从PHP编辑?
MySQL需要用单引号括起来的用户提供的字段值。
因此,您的SQL更正将是:
$sql = "INSERT INTO teamResults (Awinner, Arunner, Bwinner,
Brunner, Cwinner, Crunner, Dwinner, Drunner)
VALUES ('$Awinner', '$Arunner', '$Bwinner',
'$Brunner', '$Cwinner', '$Crunner', '$Dwinner', '$Drunner')";