必须成功完成,因为我已经成功完成了数千次。在PHP的查询中,我试图找出为什么在foreach循环中失败的原因,因为$ rowCat为空,并且当我在屏幕上回显查询时,它在结尾处有一个中断。
PHP中的代码如下所示
$GroupID = (isset($_SESSION['AccessLevel'])) ? $_SESSION['AccessLevel'] : "";
$queryCat = "SELECT DISTINCT
AdminCategory
FROM adminmenu
WHERE GroupID <= $GroupID
ORDER BY ItemName";
$rowCat = DBConnect($queryCat, "Multiple", $siteDB);
foreach ($rowCat as $row) :
$CatName = $row['AdminCategory'];
....
但是回显$ queryCat变量会在结尾产生中断,这是我可以看到的唯一失败的可能性,因为查询本身是有效的。我看不到中断的来源,但是如果它将中断发送到自定义DBConnect()函数,那就可以解释了。
SELECT DISTINCT
AdminCategory
FROM adminmenu
WHERE GroupID <= 4
ORDER BY ItemName<br />
有什么想法要寻找吗?我检查了页面的编码,也没问题。
答案 0 :(得分:0)
我发现了问题,对此感到有些愚蠢!我知道它必须是非常基本的东西,这就是为什么我没有用太多不必要的代码来塞住这个问题,而原来是查询本身。奇怪的是,这个查询已经运行了好几年了,所以虽然现在我怀疑我使用的MySQL和PHP版本比实时服务器要新,而且Apache2肯定是更新的,但现在仍然不清楚为什么会出现这个问题。我什至今天早些时候在HeidiSQL中运行了查询,并且运行良好,但是当我上一次尝试使用它时,由于一个字段上的DISTINCT和另一个字段上的ORDER BY,它给出了一个错误。应该是这样的。至少我不会再拔头发了,所以谢谢那些回答。
$queryCat = "SELECT DISTINCT AdminCategory
FROM adminmenu
WHERE GroupID <= $GroupID
ORDER BY AdminCategory";
为进行健全性检查,我只是在活动服务器上尝试了原始查询,该查询确实在该服务器上运行,但未在我的本地开发系统上运行。