-2

我将页面上显示的评论数量限制为 2,如果超过 2 个,$second_count 会计算帖子的数量,并显示显示所有评论,这就是它的用途。

如果您查看变量 $limitPost,我如何在其中添加参数。

这就是我想要完成的,但使用 PDO。

$limitPost = "DESC 限制$second_count ,2"; 但这可能会导致我理解 SQL 注入。

PUBLIC FUNCTION userComments($post_iD,$second_count)
{
    $limitPost = "DESC LIMIT 2";
    $sth = $this->db->prepare("SELECT C.com_id, C.uid_fk, C.comment, C.created, U.username, U.photo 
                                FROM comments C, users U 
                                WHERE U.status='1' AND C.uid_fk = U.uiD
                                AND C.msg_id_fk = :postiD 
                                ORDER BY C.com_id < :second_count");
    $sth->bindParam(':postiD', $post_iD, PDO::PARAM_INT);               
    $sth->bindParam(':second_count', $limitPost, PDO::PARAM_INT);
    $sth->execute();

    $data = $sth->fetchAll();
    return $data;
}

更新

这就是 $second_count ,它只是计算是否有 2 条评论显示,它会隐藏所有其余的,如果我按下显示所有评论,它会展开。

<?php
    $x=1;
    if($x){
        $comment_count  = count($commentsarray);
        $second_count   = $comment_count-2;

        if($comment_count>2){
?>
        <div class="comment_ui" id="view<?php echo $post_iD;?>">
            <a href="#" class="view_comments" id="<?php echo $post_iD;?>">Show all <?php echo $comment_count;?> comments</a>
        </div>
<?php
        $commentsarray  = $Wall->userComments($post_iD, $second_count);
        }
    }
?>
4

2 回答 2

-1

好吧:

如果您查看变量 $limitPost,我如何在其中添加另一个变量。

这就是我想要完成的,但使用 PDO。

不可能<-这就是您问题的答案

于 2013-07-01T13:13:33.667 回答
-1

代替 :

:second_count

尝试:

DESC LIMIT 2

进入准备好的语句。您真的不需要在准备好的语句中使用参数 :second_count ,因为它是一个常量字符串。

如果 :second_count 是用户的输入,那么 SQL 注入是可能的,因为它是恒定的,这样的事情是不可能的。

为什么你正在做的事情不起作用:

  1. DESC LIMIT 2 不是整数参数,因此绑定应该失败或给出垃圾。
  2. 如果您要在绑定上使用 PDO::PARAM_STR,则 :second_count 将被放入 qoutes,因此 sql 语句将失败。
于 2013-07-01T13:18:32.187 回答