'where子句'中的未知列'type'

时间:2013-07-26 08:17:21

标签: php mysql sql

Hay每个人我都有一些问题,只是想知道你们中是否有人可以帮助我。

当谈到MySQL和PHP时,我有点像菜鸟,但问题是当我尝试在我的数据库中添加注释时,我发现了一个错误,这是我的公共功能代码

    public function addComment($movieid, $comment, $user_id)
{
    $comment = stripslashes(strip_tags($comment));
    $comment = mysql_real_escape_string($comment);
    $movieid = mysql_real_escape_string($movieid);
    $user_id = mysql_real_escape_string($user_id);
    if (!($e = mysql_query("SELECT * FROM comments WHERE target_id='{$movieid}' AND user_id='{$user_id}' AND comment='{$comment}' AND type=2"))) {
        exit(mysql_error());
    }
    if (mysql_num_rows($e) == 0) {
        if (!($e = mysql_query("INSERT INTO comments(target_id,user_id,comment,date_added,type) VALUES('{$movieid}','{$user_id}','{$comment}',NOW(),2)"))) {
            exit(mysql_error());
        }
    }
}

这是我的MySQL评论表结构

 1  id                int(11)                       No  None    AUTO_INCREMENT   
 2  movieid           int(11)                       No  None         
 3  user_id           int(11)                       No  None         
 4  target_id         int(11)                       No  None         
 5  comment           text       utf8_general_ci    No  None         
 6  date_added        datetime                      No  None    

但是当我尝试添加评论时出现此错误

Unknown column 'type' in 'where clause'

所以有人可以帮助我

谢谢

5 个答案:

答案 0 :(得分:6)

您的表没有名为type的列。此查询将失败。您需要将列type添加到表中,或者需要更改查询以完全排除对type的引用。 type指的是什么?

我想了解您希望通过此查询实现的目标:

  

SELECT * FROM comments WHERE target_id ='{$ movieid}'AND user_id ='{$ user_id}'       AND comment ='{$ comment}' AND type = 2

如果表格中没有type,数据库系统将如何过滤结果?

经验法则首先尝试使用某些IDE或命令行直接在数据库上执行查询,检查查询的正确性并验证数据,然后再在代码中使用

答案 1 :(得分:0)

您的数据库中没有type列是问题

答案 2 :(得分:0)

这正是它所说的 - 你的表没有名为“type”的列。第一个mysql_query语句包含type = '2'作为条件。 如果删除该部分声明,它将起作用 - 但是,我无法判断baviour是否正确,然后: - )

答案 3 :(得分:0)

您的表格中缺少“类型”列。

答案 4 :(得分:0)

将您的查询更改为此。 (我已删除了type列,因为它不存在)

INSERT INTO comments(target_id,user_id,comment,date_added) VALUES('{$movieid}','{$user_id}','{$comment}',NOW())