我用php和mysql中的注释编写我自己的简单博客。我有一个数据库,我有一个帖子表(称为帖子),我为每个帖子手动创建一个名为comments1,comments2,comments3等的新表。每个博客文章都有一个id,当我检索评论时对于帖子,我使用如下查询:
SELECT * FROM `comments".$id."`"
当我将用户文字添加到评论时,我使用:
htmlspecialchars(mysql_real_escape_string($_POST['name']));
这种结构是否正常或是否有更好的方法我错过了?
另外,为评论创建不同的数据库是否比将其与posts数据库分组更好?在一个文件中有2个dbconnect函数会降低性能吗?最后一个担心:我如何绝对确保我的php文件不以明文形式提供给用户,因为这样他们就可以看到db登录信息等等。
感谢您的帮助。
答案 0 :(得分:13)
不,这是 TERRIBLE 结构。
制作一个comments
表并在其中存储所有评论以及相应的post_id
。
在post_id
上添加一个索引,您就可以快速获得给定帖子的所有评论。