SQL查询错误,无法弄明白

时间:2011-11-30 23:39:57

标签: php mysql

$sql="SELECT count(actid) AS tr 
        FROM useractions ua 
        WHERE qid=-1 
           OR qid IN (
               SELECT qid 
                 FROM questions q 
                 WHERE q.visible=".VISIBLE."
             ) 
          AND ua.actid =".$actid;

上面的查询给出了这个错误:

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的''附近使用正确的语法

声明有什么问题?

我做了转储并得到了这个:

string "SELECT count(actid) AS tr 
            FROM useractions ua 
            WHERE qid=-1 
               OR qid IN (
                   SELECT qid 
                     FROM questions q 
                     WHERE q.visible=1
                 ) 
              AND ua.actid =" (length=270)

$actid是另一个查询的结果,如下所示。然后将其传递给上面显示查询的函数。

foreach ($_POST['q'] as $qid) {
    list($actid) = mysql_fetch_row(mysql_query("SELECT actid FROM useractions WHERE qid='$qid'"));
    upd_facts_status($actid);
}

2 个答案:

答案 0 :(得分:1)

验证VISIBLE常量是否有值,$actid变量是否有值。

答案 1 :(得分:0)

Probalby一个错字 - VISIBLE是一个常数吗?如果它是一个字符串,它应该是引号。

您也应该启用所有错误消息:

ini_set("display_errors", true);
error_reporting(E_ALL);