尝试从PHP写入MySQL数据库时出错,而从数据库读取工作正常[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我在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。谁知道这里发生了什么?

注意:从其他网页上的数据库读取时,它工作正常,并读取我通过My​​SQL手动放入数据库的默认占位符数据。 AFAIK连接到实际的MySQL数据库不是问题。可能在MySQL数据库的实际设置中有什么东西需要激活才能从PHP编辑?

php sql
1个回答
0
投票

MySQL需要用单引号括起来的用户提供的字段值。

因此,您的SQL更正将是:

$sql = "INSERT INTO teamResults (Awinner, Arunner, Bwinner,
Brunner, Cwinner, Crunner, Dwinner, Drunner) 
VALUES ('$Awinner', '$Arunner', '$Bwinner', 
'$Brunner', '$Cwinner', '$Crunner', '$Dwinner', '$Drunner')";
© www.soinside.com 2019 - 2024. All rights reserved.