查询结束时出现意外中断

4uqofj5v  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(330)

一定是我错过了什么,因为我已经成功地做了几千次。在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变量会在末尾产生一个break,这是我能看到的唯一失败的可能性,因为查询本身是有效的。我不知道中断是从哪里来的,但是如果它将它发送到自定义dbconnect()函数,这就可以解释它了。

SELECT DISTINCT 
                AdminCategory 
            FROM adminmenu 
            WHERE GroupID <= 4 
            ORDER BY ItemName<br />

你知道要找什么吗?我已经检查了页面的编码,它也很好。

n8ghc7c1

n8ghc7c11#

我发现了问题,觉得有点傻!我知道它必须是一些非常基本的东西,这就是为什么我没有用太多不必要的代码来解决这个问题,结果是查询本身。奇怪的是,这个查询已经运行了很多年了,所以现在还不清楚为什么会出现这个问题,尽管我怀疑我使用的mysql和php版本比live服务器上的版本要新一些,而且apache2肯定是更新的。今天早些时候我甚至在heidisql中运行了这个查询,它运行得很好,但是当我刚才最后一次尝试它时,它给出了一个错误,因为在一个字段上是distinct,在另一个字段上是order by。应该是这样的。至少我不会再为了这个拔头发了,所以谢谢那些回应我的人。

$queryCat = "SELECT DISTINCT AdminCategory 
        FROM adminmenu 
        WHERE GroupID <= $GroupID 
        ORDER BY AdminCategory";

作为一个健全性检查,我只是在live服务器上尝试了原始查询,它确实在那里运行,但在我的本地开发系统上没有运行。

相关问题