意外;但我不明白为什么
问题描述:
解析错误:语法错误,意外';'在上线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);
}
答
你想大概是这样的一个
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);
K,谢谢。我这样做了,但是当我运行一个测试,看看它是否会显示有错误(即:不在表格中)时,它显示的只是一个空白屏幕 – RussellHarrower
@RussellHarrower:当然,如果你期望json,你可以'给浏览器“查询中的Erorr”文本 – genesis
嗯,我知道我可以做下面的json_encode(array(“error”,“not in table”),这就是我想要显示的,如果它不在表中?无论如何要做到这一点? – RussellHarrower