解决查询中的错误

时间:2011-10-19 13:52:21

标签: php mysql

我有一个查询来检查两个特定值是否共存于表的同一列中。 我创建的查询显然不起作用,如下所示:

$query = mysql_query("SELECT COUNT(`Sub_id`) FROM `subscribe` WHERE `user_id`='$idid' AND ´subscriber´='$sub_id'");

保存此查询的整个函数如下所示:

13    function subscribed($sub_id, $idid)
14{
15
16       $sub_id = mysql_real_escape_string ($sub_id);
17       $idid = mysql_real_escape_string ($idid)
18
19       $query = mysql_query("SELECT COUNT(`Sub_id`) FROM `subscribe` WHERE   `user_id`='$idid' AND ´subscriber´='$sub_id'");
20 return (mysql_result($query, 0) == 1) ? true : false;
21}

如果有人可以请我指出错误的方向,我似乎无法找到,我会很感激。

提前谢谢!

3 个答案:

答案 0 :(得分:1)

<强>更新

你错过了一个分号:

$idid = mysql_real_escape_string ($idid)
// ------------------------------------^^^

当PHP错误消息显示Unexpected something-or-other at line xxx之类的内容时,请立即查看之前的事物错误消息中PHP抱怨的内容。在那里,你可能会发现一些不合适的东西。

此外,你肯定在subscriber附近有一些向后引号。 MySQL期望使用反引号引用列名,但在这个实例中根本不需要引号,因为subscriber不是MySQL保留关键字。

$query = mysql_query("SELECT COUNT(`Sub_id`) FROM `subscribe` WHERE `user_id`='$idid' AND ´subscriber´='$sub_id'");
//---------------------------------------------------------------------------------------^^^^^^^^^^^^^
// Should be
$query = mysql_query("SELECT COUNT(`Sub_id`) FROM `subscribe` WHERE `user_id`='$idid' AND `subscriber`='$sub_id'");

答案 1 :(得分:0)

$query = mysql_query("SELECT COUNT(*) FROM `subscribe` WHERE `user_id`='$idid' AND `subscriber`='$sub_id'");

更新:你在第17行的末尾遗漏了分号:

$idid = mysql_real_escape_string ($idid);

答案 2 :(得分:0)

尝试以下方法:

$query = mysql_query("SELECT COUNT(`Sub_id`) FROM `subscribe` WHERE `user_id`= $idid
GROUP BY Sub_id
HAVING COUNT(Sub_id)>1 ");