为什么while循环函数只返回1行数据?

时间:2018-01-04 07:12:47

标签: php

我正在做一个函数(),我想在foreach循环中调用函数时显示所有数据。

突然,当函数不起作用时,它只返回第一行数据,但在数据库中有2行数据。

以下是我的代码:

function getComments($conn,$postId){

    $commentSql = "    SELECT comments.id, comments.user_id, comments.user_desc, comments.timestamp, user.firstname, user.lastname 
                       FROM comments 
                       INNER JOIN user 
                       ON user.id = comments.user_id
                       WHERE post_id = ? ";

    if($commentStmt = $conn->prepare($commentSql)){
        $commentStmt->bind_param("i", $postId);
        $commentStmt->execute();

        $commentStmt->bind_result($commentId, $userId, $userComment, $comment_timestamp, $user_firstname, $user_lastname);

        while ($commentStmt->fetch()) {
            echo "user dec: $userComment comment id: $commentId";

        }
        $commentStmt->close();
    }else{
        return "error preparing sql";
    }
}

当我为每个循环调用函数时:

echo getComments($conn,$post_id);

表评论:

enter image description here

我的当前输出仅显示1行数据:

enter image description here

1 个答案:

答案 0 :(得分:-1)

WHERE post_id = ? ";

您传递的帖子ID在两条评论中有所不同。一个是id 6,另一个是9。