从url接收数据时无法解决sql注入错误

时间:2016-04-05 07:22:24

标签: php mysql

php code

    <?php
    require_once "../model/db_helpers.php";
    $movie_id=mysqli_real_escape_string($obj->conn,$_GET['id']);
    //echo $movie_id;
    $watch=mysqli_real_escape_string($obj->conn,$_GET['watch']);

    $result= $obj->select("movie_views","all_movies","movie_id='$movie_id'");

    //print_r($result);

    if($watch =="true")
    {
        $result[0]->movie_views ++;
        $movie_views= $result[0]->movie_views;
        $update= $obj->update("all_movies","movie_views='$movie_views'","movie_id='$movie_id'");

        //print_r($update);
    }

?>
<script>
    //window.location.href="showcontent.php?id=<?php echo $movie_id; ?>";
</script>

在上面的代码中,除了更新查询之外,一切都是有用的。我需要将链接点击更新到数据库中,我需要将id(通过url传递的数据)作为查询中的条件。

我知道我必须使用mysqli_real_eascape_string来避免sqlinjection错误。但我仍然以某种方式得到以下错误。

错误

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近&#39;&#39;在第1行

请提供一个很好的答案,解释我出错的地方,因为我是这个主题的新手。

谢谢。

1 个答案:

答案 0 :(得分:0)

您有拼写错误的变量名称

改变
$ sql =“update $ table set $ records where $ scondition
到 $ sql =“update $ table set $ records其中 $ condition

生成的查询是update all_movies set movie_views='X' where"
没有条件