我收到mysqli错误1064,但我不知道为什么

时间:2019-07-27 16:49:05

标签: php mysql sql mysql-error-1064

我想从android客户端发布此数据,我用邮递员对其进行了测试,状态代码为200。但是我有一个mysqli错误,它是:

错误:

  

(((1064)您的SQL语法有错误;请查看与您的MariaDB服务器版本相对应的手册,以在第1行的'WHERE id ='附近使用正确的语法)

我不知道我的代码有什么问题,并且SELECT部分​​正常工作

<?php


$id = $_POST['id'];
$isLiked = $_POST['isLiked'];


if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}


$connection = mysqli_connect($host, $username, $password, $database);
$query = "SELECT likes FROM posts WHERE id=$id";
$result = mysqli_query($connection, $query);



$array = mysqli_fetch_assoc($result);
$likes = $array['likes'];

if ($isLiked == true) {

    $updateQuery = "UPDATE posts SET likes=" . $likes++ . " WHERE id=$id";

} else {

    $updateQuery = "UPDATE posts SET likes=" . $likes-- . " WHERE id=$id";

}


if (!$connection->query($updateQuery)) {
    echo "query failed: (" . $connection->errno . ") " . $connection->error;
}

mysqli_query($connection, $updateQuery);
if (!$connection->query($updateQuery)) {
    echo "query failed: (" . $connection->errno . ") " . $connection->error; // It returns that 1064 error
}

mysqli_query($connection, $updateQuery);

1 个答案:

答案 0 :(得分:-1)

我看到3个可能的错误。

第一个错误, $ id可以为空

第二个错误可能是$ likes ++需要是 ++ $ likes ,因为您不会在变量后用++来求和,我也指的是-$ likes

第三个错误是您的代码容易受到MySQL注入的攻击,我建议做一个准备好的声明

链接到准备好的声明的示例和说明:https://www.w3schools.com/php/php_mysql_prepared_statements.asp