如果运行函数返回服务器配置错误
function build_path($cid)
{
$result = array();
$DB = new MySQLTable;
$DB->TblName = 'shop_categories';
$where['cat_id']['='] = $DB->CleanQuest($cid);
$res = $DB->Select('cat_id,cat_name,cat_parent', $where);
if($res !== 'false')
{
$pid = mysql_fetch_array($res);
if($pid['cat_parent'] !== 0)
{
Echo $pid['cat_parent'];
build_path($pid['cat_parent']);
} else {
Echo $pid['cat_id'];
return true;
}
}
return false;
}
我在这里找不到错误。请帮忙。
抱歉打扰了你们所有人。问题是比较'if($ pid ['cat_parent']!== 0)':$ pid ['cat_parent']是一个带有int(0)的字符串
我可以构建此函数来存储完整路径而不使用GLOBALS和SESSION变量吗?
答案 0 :(得分:0)
要检查的事项:
尝试进行此修改(用于调试):
function build_path($cid) {
static $done = array();
if (isset($done[$cid])) {
throw new Exception('We have already looked up CID: '.$cid);
} else {
$done[$cid] = true;
}
//.......
}
这将让你知道你是否有一个递归循环。
另外,将error_reporting
设置为max,然后检查错误日志。我的猜测是,它是堆栈溢出(你的递归过深)或内存限制问题(它耗尽了太多的内存并被杀死)......