2

干草每个人我都有一点问题,只是想知道你们中的任何人是否可以帮助我。

当谈到 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'

所以有人可以帮助我吗

谢谢

4

5 回答 5

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 或命令行直接在数据库上执行查询,检查查询的正确性并验证数据,然后再在代码中使用它

于 2013-07-26T08:19:01.930 回答
0

您的数据库中没有type列,这是问题所在

于 2013-07-26T08:19:15.673 回答
0

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

于 2013-07-26T08:20:39.843 回答
0

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

于 2013-07-26T08:20:57.513 回答
0

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

INSERT INTO comments(target_id,user_id,comment,date_added) VALUES('{$movieid}','{$user_id}','{$comment}',NOW())
于 2013-07-26T08:21:39.747 回答