繁体   English   中英

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

[英]I got mysqli error 1064 but i don't know why

我想从 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);

我看到 3 个可能的错误。

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

第二个错误可能是 $likes++ 需要++$likes ,因为你没有在变量之后用 ++ 求和,我也指的是--$likes

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

链接到准备好的语句示例和解释:https ://www.w3schools.com/php/php_mysql_prepared_statements.asp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM