意想不到的;但我不明白为什么


unexpected ; but i cant see why

解析错误:语法错误,意外';'在/home/realcas/public_html/eshop/ecms/system/classes/database.php第29行

这是第29行 的代码
return empty($resultArray) ? "Error in Query " ? json_encode($resultArray);

这是问题所在的代码段

public function select($table,$options,$where,$orderby)
{
    $options = empty($options) ? "*"   : $options;
    $where  =  empty($where)   ? "1=1" : $where;
    $orderby = empty($orderby) ? ""    : $orderby;
    $qry = "SELECT $options FROM $table WHERE $where $orderby ";
    $result = mysql_query($qry) or die(json_encode(array("error",mysql_error())));
    while(($resultArray[] = mysql_fetch_assoc($result)));
    return empty($resultArray) ? "Error in Query " ? json_encode($resultArray);
    return json_encode($resultArray);
}

你可能想要这个

return empty($resultArray) ? "Error in Query " : json_encode($resultArray);

因为它是

($condition) ? "condition is true" : "condition is false";

我看到你已经在用它了,所以我认为这只是一个打字错误

也删除这一行

    return json_encode($resultArray);

,因为它是不必要的,永远不会发生。此外,我不确定你的while循环是正确的。

结果

public function select($table,$options,$where,$orderby)
{
    $options = empty($options) ? "*"   : $options;
    $where  =  empty($where)   ? "1=1" : $where;
    $orderby = empty($orderby) ? ""    : $orderby;
    $qry = "SELECT $options FROM $table WHERE $where $orderby ";
    $result = mysql_query($qry) or die(json_encode(array("error",mysql_error())));
    while(($row = mysql_fetch_assoc($result))){ $resultArray[] = $row; }
    return count($resultArray) < 1 ? "Error in Query " : json_encode($resultArray);
}

首先,您不需要最后一个return语句,它已经在前面的三元运算符中包含了。

其次,另一个return应该是这样的:

return empty($resultArray) ? "Error in Query " : json_encode($resultArray);