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

时间:2014-03-23 09:03:44

标签: php mysql

我正在尝试使用数据库检索数据,但是将其限制为每个视图的特定数量的项目。但相反,我得到了上面提到的错误。我创建了以下函数来检索数据:

//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上直接输入MySQL时,我得到了结果。请协助

1 个答案:

答案 0 :(得分: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注入攻击!