2011-10-09 146 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); 
相關問題