我想从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);
答案 0 :(得分:-1)
我看到3个可能的错误。
第一个错误, $ id可以为空。
第二个错误可能是$ likes ++需要是 ++ $ likes ,因为您不会在变量后用++来求和,我也指的是-$ likes 。
第三个错误是您的代码容易受到MySQL注入的攻击,我建议做一个准备好的声明。
链接到准备好的声明的示例和说明:https://www.w3schools.com/php/php_mysql_prepared_statements.asp