绝对困惑,为什么这个特定的查询不起作用?

时间:2017-06-03 16:41:18

标签: php sql mysqli prepared-statement

我不明白,因为到目前为止我可以删除评论。但是,当我尝试更新它们时,它不会在数据库中更新。更令我震惊的是,没有错误信息解释原因。这有什么特别的原因吗?

<table class="table table-bordered table-hover">
                    <thead>
                        <tr>
                            <td>Id</td>
                            <td>Post Author</td>
                            <td>Author Email</td>
                            <td>Post Content</td>
                            <td>In Response To</td>
                            <td>Post Status</td>
                            <td>Date</td>
                            <td>Approve</td>
                            <td>Disapprove</td>
                        </tr>
                    </thead>
                    <tbody>
                        <?php

                        if(isset($_GET['delete'])) {

                            $comId = $_GET['delete'];

                            $deleteComment = $conn->prepare("
                            DELETE FROM comments
                            WHERE comment_id = ?
                            ");
                            $deleteComment->bind_param("i", $comId);
                            $deleteComment->execute();
                            $deleteComment->close();

                        } 


                        if(isset($_GET['approve'])) {
                            $comIdApp = $_GET['approve'];
                            $approveStat = 'approved';

                            $approveComment = $conn->prepare("
                            UPDATE comments
                            SET comment_status = ?
                            WHERE comment_id = ?
                            ");
                            $approveComment->bind_param("si", $approveStat, $commIdApp);
                            $approveComment->execute();
                            $approveComment->close();

                        }   

                        ?>
                        <?php
                        $post_output = $conn->query("SELECT * FROM comments");

                        while($row = $post_output->fetch_assoc()) { 

                            $commentId = $row['comment_id'];
                            $postCommentId = $row['post_comment_id'];
                            $commentAuthor = $row['comment_author'];
                            $authorEmail = $row['author_email'];
                            $commentContent = $row['comment_content'];
                            $commentStatus = $row['comment_status'];
                            $commentDate = $row['comment_date'];

                        ?>
                            <tr>
                            <td><?php echo($commentId); ?></td>
                            <td><?php echo($commentAuthor); ?></td> 
                            <td><?php echo($authorEmail); ?></td>
                            <td><?php echo($commentContent); ?></td>

                            <?php 
                            $postCommentRelate = $conn->query("SELECT * FROM posts WHERE post_id = {$postCommentId}");

                            while($row = $postCommentRelate->fetch_assoc()) {
                                $postTitle = $row['post_title'];
                            ?>

                            <td><?php echo($postTitle); ?></td>

                            <?php } ?>

                            <td><?php echo($commentStatus); ?></td>
                            <td><?php echo($commentDate); ?></td>
                            <td><a href='admin_comments.php?approve=<?php echo($commentId); ?>'>Approve</a></td>
                            <td><a href='admin_comments.php?disapprove=<?php echo($commentId); ?>'>Disapprove</a></td>
                            <td><a href="admin_comments.php?delete=<?php echo($commentId); ?>">DELETE</a></td>
                            <td><a href=''>EDIT</a></td>
                            </tr>
                        <?php } ?>
                    </tbody>
                </table>

1 个答案:

答案 0 :(得分:0)

您的变量拼写不同$ comIdApp vs $ commIdApp

$comIdApp = $_GET['approve'];
$approveStat = 'approved';

$approveComment = $conn->prepare("UPDATE comments SET comment_status = ? WHERE comment_id = ?");
$approveComment->bind_param("si", $approveStat, $commIdApp);