如何在数据库mysql表中插入以下行?

时间:2012-01-29 06:14:42

标签: mysql

我有两个名为:博客的表格,用于显示博客帖子,评论用于显示每篇博文的评论部分。

这些字段如下:

适用于博客:

1:blog_id

2:标题

3:身体

4:作者

5:已更新

征求意见:

1:comments_id

2:姓名

3:电子邮件

4:身体

5:blog_id

表格 blog_id 字段必须相同。

现在我想要的是假设对于blog_id =“2”,我正在写评论,那么什么是插入查询,这样当我访问index.php?blog_id = 2时,我只得到那个特定的评论交。

我是指如何为特定的blog_id插入评论?

我尝试了这个查询来插入:

INSERT INTO cms.comments(blog_id, name,email,comments_body)
                VALUES (
                    '".$arr['blog_id']."',
                    '".$arr['name']."',

                    '".$arr['email']."',
                    '".$arr['body']."'
                ) );

3 个答案:

答案 0 :(得分:1)

好的,我自己做过[无需实现外键]。

以下是解决方案。

要求是评论的字段“blog_id”必须等于博客

的“blog_id”

这可以通过以下方式完成。首先通过以下声明获取博客的“blog_id”...

$sql = "SELECT * from blog WHERE blog_id = '$blog_id'";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($res);
$iItemId = (int)$_POST['blog_id']; // obtaining necessary information

像这样使用INSERT语句,插入它......

mysql_query("INSERT INTO amityadav.comments(blog_id, name,url,email,body)
                VALUES (
                    '$iItemId',   //This variable is from the blog_posts' "blog_id" which will be inserted into the comment's "blog_id"
                    '".$arr['name']."',
                    '".$arr['url']."',
                    '".$arr['email']."',
                    '".$arr['body']."'
                )");

现在为了检索它,请使用流动的查询......

$sql = "SELECT * from blog WHERE blog_id = '$blog_id'";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($res);
$iItemId = (int)$_GET['blog_id']; // obtaining necessary information
$comments = array();
$result = mysql_query("SELECT * FROM comments WHERE `blog_id` = '{$iItemId}' ORDER BY comments.id ASC ");

使用这些查询,我已经成功实现了我想要的......:)

答案 1 :(得分:0)

您是否在MySQL中尝试使用外键。

更多信息: -

http://dev.mysql.com/doc/refman/5.0/en/example-foreign-keys.html

答案 2 :(得分:-1)

您需要将父子表概念与外键一起使用。 MySQL支持Foreign Keyscascading deletes作为其数据库存储引擎的一部分。

您需要使用InnoDB存储引擎。