此代码将从另一个php代码中接收id和区域,我确定它会正确接收它们。此代码的目的是更新id等于用户输入的id的区域。我运行代码,从这个语句中得到了SQL语法错误。更新中的SQL语法错误
$sql = "UPDATE complain SET area = ".$area."WHERE num = ".$id."";
任何人都知道什么是错的?
<?php
$area = $_GET['area'];
$id = $_GET['id'];
echo $area;
echo $id;
//$Area = $_POST['variable'];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "sfa";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "UPDATE complain SET area = ".$area."WHERE num = ".$id."";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
我猜''区域'是一个字符串,而不是一个整数。然后它应该被包裹在单引号中。你真正的问题是'WHERE'关键字之前没有空格。使它成为'... SET area ='“。$ area。”'WHERE ...' – Qirel
另外,您应该使用预准备语句,您很容易受到SQL注入攻击。 –