使用未定义的常量mysql_error - 假定为'mysql_error'

3
我正在尝试使用来从数据库检索数据,但限制每个视图中的某一项数量。 但是我得到了上述错误。 我创建了以下函数以检索数据:
//function to display jobs
function display_jobs($start,$per_page)
{
    //Select the data from the database, but limit it to the number of item per page
    $query = "SELECT a.`title`, 
                     a.`vacancyid`, 
                     b.`username`, 
                     c.`date`
                FROM holystic.`vacancy` a
          INNER JOIN holystic.`users` b 
                  ON a.`userid` = b.`userid`
          INNER JOIN holystic.`date` c
                  ON a.`vacancyid` = c.`vacancyid`  
              `LIMIT $start, $per_page;";
    $query_set = mysql_query($query) or die(mysql_error);
    return $query_set;
}

当我删除or die(mysql_error)语句时,就无法得到任何结果。但是在MySQL上直接输入时,可以得到结果。请协助解决。


1
or die(mysql_error()); 或者你在 \LIMIT` 处多了一个反引号。 - Prix
1个回答

1
应该是 die(mysql_error()); .. 你缺少了括号。它是一个函数,但你却把它当作常量调用。
$query_set = mysql_query($query) or die(mysql_error());
                                                   ^^---- Here

此外,删除LIMT关键字前的反引号。[感谢@Prix]

修正代码:

function display_jobs($start,$per_page)
{
    //Select the data from the database, but limit it to the number of item per page
    $query = "SELECT a.`title`, 
                     a.`vacancyid`, 
                     b.`username`, 
                     c.`date`
                FROM holystic.`vacancy` a
          INNER JOIN holystic.`users` b 
                  ON a.`userid` = b.`userid`
          INNER JOIN holystic.`date` c
                  ON a.`vacancyid` = c.`vacancyid`  
               LIMIT $start, $per_page;";
    $query_set = mysql_query($query) or die(mysql_error());
    return $query_set;
}

这个(mysql_*)扩展自PHP 5.5.0已经被弃用,并且将来会被移除。相反,应该使用MySQLiPDO_MySQL扩展。转换为PreparedStatements甚至更好,以防止SQL注入攻击!


我根据您的建议进行了修改,现在我遇到了以下错误**您的SQL语法有误,请检查与您的MySQL服务器版本相对应的手册以获取正确的语法使用方式,附近为'`LIMIT 0, 2'**。 - kya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接