出乎意料但我不明白为什么

时间:2011-10-09 10:30:41

标签: php

解析错误:语法错误,意外';'在/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);
}

2 个答案:

答案 0 :(得分:5)

你可能想要这个

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);
}

答案 1 :(得分:3)

首先,您不需要上一个return语句,这已经包含在之前的三元语言中。

其次,其他return应如下所示:

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