Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新中的SQL语法错误_Php_Sql - Fatal编程技术网

Php 更新中的SQL语法错误

Php 更新中的SQL语法错误,php,sql,Php,Sql,这段代码将从另一个php代码接收id和区域,我确信它正确地接收了它们。此代码用于更新id等于用户输入的id的区域。我运行了代码,从this语句中得到了SQL语法错误 $sql = "UPDATE complain SET area = ".$area."WHERE num = ".$id.""; 有人知道怎么了吗 <?php $area = $_GET['area']; $id = $_GET['id']; echo $area; echo $id; //$Area = $_P

这段代码将从另一个php代码接收id和区域,我确信它正确地接收了它们。此代码用于更新id等于用户输入的id的区域。我运行了代码,从this语句中得到了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子句之前添加一些空格,使您的查询

UPDATE complain SET area = ".$area." WHERE num = ".$id."

“$区域”之间缺少空格。其中

结果是

UPDATE complain SET area = 2WHERE num = 0815

尝试使用此查询。工作正常,并更新记录-


“更新投诉集区域='。$area'。其中num='。$id.'”

以下查询应该可以工作:

 $sql = "UPDATE complain"."SET area = $area".
        "WHERE num = $id";

希望有帮助

我猜,
$area
是一个字符串,而不是整数。然后它应该用单引号包装。真正的问题是
WHERE
关键字前面没有空格。使其成为
…SET area='“$area.”其中…
另外,您应该使用准备好的语句,您很容易受到SQL注入攻击。