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'
所以有人可以帮助我
谢谢
答案 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())