0

我在 php 和 html 中做一个喜欢/不喜欢的事情。因此,由于它对每个博客都使用赞,我使用博客 ID。我想知道如何更新表中的“喜欢”,但只使用它的 id 更新特定行的“喜欢”。这是php脚本:

<?php

require 'init.php';

$rating = $_GET['rating'];
$postid = $_GET['id'];

if ($rating = "like") {
    $sql = "

    ";
}

if ($rating = "dislike") {
    $sql = "
        UPDATE
            posts
        SET
            dislikes = dislikes+1
        WHERE
            id = $postid    
    ";
}
?>
4

1 回答 1

3

更新查询似乎不是这里的问题,主要问题是您的 if 语句,您没有使用比较运算符而是使用赋值运算符。

该语句:if ($rating = "like")将 value 分配"like"给 variable $rating,它不会$rating与 value进行比较"like",这就是我认为您希望它做的事情。

几乎没有其他需要注意的“主要”问题是您对 SQL 注入攻击持开放态度。既然您在评论中提到您正在使用mysql_函数,那么您至少想使用mysql_real_escape_string函数。例如

$rating = mysql_real_escape_string($_GET['rating'], $con); // assuming $con is your MySQL Connection
$postid = mysql_real_escape_string($_GET['id'], $con);

另一个同样重要的注意点是mysql_函数已被弃用。您绝对应该考虑使用mysqlipdo

第三点也是最后一点要注意,如果您的评分是,"like"那么查询是空的。希望您在调用 之前检查emptyness mysql_query,此处未显示。

于 2013-08-14T03:08:13.743 回答