我有一个像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";
答案 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注入。