Php mysql DB未添加具有类似元素的行

Php mysql DB未添加具有类似元素的行,php,mysql,database,Php,Mysql,Database,我创建了一个包含3列的DB: 援助、qid和信息 aid是一个外键,它将与另一个表共用。 comments是存储用户注释的varchar 它部分起作用了。问题是aid没有添加重复的值。 假设我想添加与特定帮助相关的注释。总共有18个援助。我想根据aid的过滤评论。该表未添加重复的辅助 这是我在php中使用的查询: $query = "UPDATE answers SET acount = acount + 1 WHERE aid = $vote"; $result = mysql

我创建了一个包含3列的DB: 援助、qid和信息

aid是一个外键,它将与另一个表共用。 comments是存储用户注释的varchar

它部分起作用了。问题是aid没有添加重复的值。 假设我想添加与特定帮助相关的注释。总共有18个援助。我想根据aid的过滤评论。该表未添加重复的辅助

这是我在php中使用的查询:

    $query = "UPDATE answers SET acount = acount + 1 WHERE aid = $vote";
    $result = mysql_query($query);
    $cadd = "INSERT INTO comments (aid, msg) VALUES ('$vote','$comment')";
    mysql_query($cadd);
我做错了什么。我附上了DB结构的屏幕截图

警告:极端n00b


看起来aid是您的主键,应该是唯一的

显示表格注释。我猜那里的PK是aid。

b、 t.w您的代码易受sql注入攻击(除非这只是为了调试)。

我不明白。请说明EAID是唯一的,这意味着您不能向该表中添加重复的aid编号。如果它是一对多关系中的外键,则它不应是唯一的或主键。它应该只是另一个表的参考id。请看问题。屏幕截图为table commentsCan,您提供了页面中描述“索引”部分的屏幕截图,该截图应显示comments.aid上是否有主键,这将阻止您使用相同的辅助添加多行。或者,如果您找不到,是否可以粘贴“SHOW CREATE TABLE comments”的结果,其中包含相同的信息?在第一个屏幕截图中,单击详细信息(在屏幕截图区域的左下角)。检查表有哪些主键,因为这些字段通常都是唯一的。$vote应该用引号括起来吗?这是一个int字段,对吧,因此假设php变量$vote是一个整数,您不需要在其周围加引号——即:$cadd=“INSERT INTO comments(aid,msg)value($vote,$comment”)”;我们还可以拥有整个数据库的sql转储吗?;-)