首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计数器未按预期工作

计数器未按预期工作
EN

Stack Overflow用户
提问于 2018-08-17 16:24:46
回答 1查看 108关注 0票数 0

我正在尝试从db.I中得到一些注释,我已经创建了一个设置为2的计数器

代码语言:javascript
复制
var limit=2;

一旦用户单击它,则注释计数设置为4,第二次计数器值设置为6 .....etc。

问题是,当我第一次单击按钮时,显示的是6条记录而不是4条

代码语言:javascript
复制
$(document).ready(function(){
        var limit=2;
        $(document).on('click','.more',function(){
            limit=limit+2;
            $('#comments').load("loadComments.php",{
                limit:limit
            });
        });
    });

我是loadComment.php

代码语言:javascript
复制
 $limit=$_POST["limit"];
        $sql = "SELECT * FROM comments order by id desc limit  $limit ";  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-17 16:35:29

你很亲密

代码语言:javascript
复制
$(document).ready(function(){
    var limit=2;
    $(document).on('click','.more',function(){
        limit=limit+2;
        $('#comments').load("loadComments.php?limit="+limit);
    });
});

$limit = (int)$_GET["limit"];
//$limit = intval($_GET["limit"]); //if you like functions better they are basically the same.
$sql = "SELECT * FROM comments order by id desc limit $limit"; 

首先,load$_GET请求,因此您可以通过$_GET中的查询字符串传递限制。

然后,将限制设置为int。许多准备好的语句实际上不能很好地处理限制或按子句排序的问题。更别提我不知道你在使用什么DB或库了。但铸造它应该能解决大部分问题。

现在,如果load做了您想做的事情(在容器中加载html ),那么使用它是完全可以接受的,但是它被认为是Get类型的请求。因为某种原因,有些人在某种程度上比得到的东西更安全,但事实并非如此。因此,如果这使您的代码更易于阅读和实现,那么它就更好了。

描述:从服务器加载数据,并将返回的HTML放到匹配的元素中。

http://api.jquery.com/load/

我要提到的最后一件事是小心SQLInjection:

What is SQL injection?

最好总是让查询准备好语句。对于查询中的ORDER和LIMIT子句来说,这有点棘手。但是由于极限只接受一个数字,所以我们可以将它转换为int (int),或者使用intval()

干杯。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51899531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档