PHP MariaDB while循环在没有行时运行

PHP MariaDB while循环在没有行时运行,php,mysql,mariadb,Php,Mysql,Mariadb,运行Lamp堆栈,现在使用MariaDB而不是MySQL。 我运行一个select查询,但是如果没有返回任何内容,我会得到一个无限的错误循环,锁定我的DB服务器并刷新错误日志 下面是代码。 使用MYSQL时没有问题。 因此,现在我检查前面的结果中的行数,然后绕过while循环 我错过了什么?我不想重构我所有的代码 $sql="select COUNT(DISTINCT garmtypeid) as stylecount,garmtypeid as styleid, count(o

运行Lamp堆栈,现在使用MariaDB而不是MySQL。 我运行一个select查询,但是如果没有返回任何内容,我会得到一个无限的错误循环,锁定我的DB服务器并刷新错误日志

下面是代码。 使用MYSQL时没有问题。 因此,现在我检查前面的结果中的行数,然后绕过while循环

我错过了什么?我不想重构我所有的代码

$sql="select  COUNT(DISTINCT garmtypeid) as stylecount,garmtypeid as styleid,
       count(objects.id) as itemqty,objectstyles.code,objectstyles.description,
        objectstyles.bundleqty,sum(objectstyles.forbiddenitem) as forbiddenitem,
       objectstyles.altdescription
    from  objects
    left join  objectstyles on objectstyles.id = objects.garmtypeid
    where  rfid in ($Taglist2)
    group by  garmtypeid ";
error_log("BUNDLLLE");
error_log($sql);

        $result = mysql_query($sql);

 while (($rowx =mysql_fetch_assoc($result))!==false)
{....}

表达式
$rowx=mysql\u fetch\u assoc($result)
是一个赋值,严格来说并不等于
false
,因此创建了无限循环。但是,它可能是一个松散的比较(
!=
而不是
!=
)。事实上,由于
mysql\u fetch\u assoc()
在成功时返回非空数组,在失败时返回
false
,因此您甚至不需要进行比较

有关完整参考,请参阅上的文档。

(其他问题)

-->

您是否需要
左侧

不要使用
mysql.*
界面;切换到
mysqli.*
PDO

COUNT(DISTINCT garmtypeid) as stylecount
...
group by  garmtypeid
COUNT(*) as stylecount
...
group by  garmtypeid