PHP更新MySQL,表单输入作为列名输入

时间:2017-06-10 17:52:20

标签: php mysql forms

所以我很抱歉,因为我觉得我经常提出愚蠢的问题。我正在学习,但到了那里。

我已经创建了一个基本的HTML表单,并且在之前的回答的帮助下,我已经进行了PHP和MySQL查询。但是,当我提交表单时,表单中的输入值将显示为列名,而不是要在行中更新的信息。

简单来说,当提交表单时,如果输入要将名字从James更改为Josh,则错误消息为:

"更新记录时出错:未知列' Josh'在'字段列表'"

我在下面的SQL查询中会将列名称作为first_name获取,但这显然不会发生。

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "Users";

//Create variables
$first_name=$_POST['first_name'];
$last_name=$_POST['last_name'];
$ID=$_POST['ID'];

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 

$sql = "UPDATE Users SET first_name=$first_name, last_name=$last_name WHERE 
ID=$ID";

if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . $conn->error;
}

$conn->close();
?>

1 个答案:

答案 0 :(得分:0)

我不了解PHP,但我怀疑您的问题是您没有引用更新语句中的值。所以尝试类似的事情:

"UPDATE Users SET first_name='$first_name', last_name='$last_name' WHERE ID=$ID"