[英]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.