2011-10-09 145 views
1

解析错误:语法错误,意外';'在上线29意外;但我不明白为什么

/home/realcas/public_html/eshop/ecms/system/classes/database.php这是行代码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); 
} 

回答

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

K,谢谢。我这样做了,但是当我运行一个测试,看看它是否会显示有错误(即:不在表格中)时,它显示的只是一个空白屏幕 – RussellHarrower

+0

@RussellHarrower:当然,如果你期望json,你可以'给浏览器“查询中的Erorr”文本 – genesis

+0

嗯,我知道我可以做下面的json_encode(array(“error”,“not in table”),这就是我想要显示的,如果它不在表中?无论如何要做到这一点? – RussellHarrower

3

首先,你并不需要最后return声明,这已经由先前的三元运算覆盖。

其次,其他return应该是这样的:

return empty($resultArray) ? "Error in Query " : json_encode($resultArray); 
相关问题