在PHP中为留言板上的消息添加注释

时间:2015-09-23 16:40:01

标签: php mysql

我有一个像Facebook一样简单的留言板页面。用户发布消息,用户可以对此消息发表评论。每条消息都在页面上发布,每条消息下都有一个地方可以为该消息提交评论。在我的数据库中有用户,消息和注释的表。

我的问题是:我如何知道我正在评论哪条特定消息,以便使用相应的message_id将其正确传递到MySQL数据库?

$update = Yii::app()->db->createCommand()
    ->update('user',
        array(
            'point'=>new CDbExpression('point + 2')
        ),
        'id=:id AND role_id =:role_id',
        array(':id'=> 13, ':role_id' => 2)
    );

编辑:

$comm = "INSERT INTO comments(user_id, message_id, comment, created_at, updated_at)
                    SELECT '{$_SESSION['id']}', '{$_SESSION['messages.id']}', '{$_SESSION['comment']}', NOW(), NOW()
                    FROM messages";

1 个答案:

答案 0 :(得分:0)

扩展您的表单,将消息ID包含为隐藏字段:

 echo "<div class='write_comm'>
                    <form method='post' action='mess_comm.php'>
                        <input type='hidden' name='action' value='post_comm'>
                        <input type='hidden' name='message_id' value='{$row['mess_id']}'>
                        Post a comment:<input type='text' name='comm' class='comm'>
                        <input type='submit' value='Post a comment' class='comm_sub'>
                    </form>
                </div>";

然后在查询中使用id:

$comm = "INSERT INTO comments(user_id, message_id, comment, created_at, updated_at)
                VALUES ('{$_SESSION['id']}', '{$_POST['message_id']}', '{$_POST['comm']}', NOW(), NOW())";

注意:我更正了INSERT查询中的错误。你应该查看准备好的语句,现在你的代码是开放的SQL注入。