我正在尝试使用一个带有表单的简单网页来更新我的mysql表的一个单元格。我不确定为什么它不会将数据发送到我的桌子。我有两个网页。 form.php和process.php。下面是各自的代码。
form.php的
<!DOCTYPE HTML PUBLIC
<html>
<head>
<title></title>
</head>
<body>
<!-- form to get key detail of record in database -->
<form method="POST" action="process.php">
<input type="text" name="inputtest" />
<input type="submit" name"submitButton" value="Submit!" />
</form>
<?php
$inputtest = $_POST["inputtest"];
?>
</body>
</html>
process.php
<?php
$con=mysqli_connect("localhost","root","********","allstate");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM producers");
?>
<?php
UPDATE producers
SET TEST={$inputtest}
[WHERE ID=1]
?>
答案 0 :(得分:2)
因为您尝试直接在PHP中编写SQL而不是像在SELECT查询中那样构建字符串并将其传递给mysqli_query
。
你第一次就做对了。更改SQL的第二位以遵循第一位的模式。
其次,您尝试将显示表单的页面中提交的表单数据($inputtest = $_POST["inputtest"];
)分配给用户,而不是从表单处理请求的页面。将该代码移动到另一页。
请注意,将用户输入直接注入到这样的SQL语句中会使您易受SQL injection attacks 的攻击,而这需要defend 。