Php 获得;致命错误:对非对象调用成员函数fetch_assoc();关于SQL查询

Php 获得;致命错误:对非对象调用成员函数fetch_assoc();关于SQL查询,php,mysql,Php,Mysql,我的数据库中有以下两个表: 声明 和标签 我正在尝试执行此查询 从语句中选择s.id、s.name、s.preview、s.approved,s.id=t.probID上的s.JOIN Tags t,其中s.approved=TRUE,t.tag IN(“几何体”)按s.id、s.name分组,计数(不同的t.tag)=1 但是获取“致命错误:在C:\wamp\www\file.php第46行的非对象上调用成员函数fetch_assoc()”,其中第46行是,而($row=$res->fet

我的数据库中有以下两个表:

声明

和标签

我正在尝试执行此查询

从语句中选择s.id、s.name、s.preview、s.approved,s.id=t.probID上的s.JOIN Tags t,其中s.approved=TRUE,t.tag IN(“几何体”)按s.id、s.name分组,计数(不同的t.tag)=1

但是获取“致命错误:在C:\wamp\www\file.php第46行的非对象上调用成员函数fetch_assoc()”,其中第46行是
,而($row=$res->fetch_assoc()){


我的查询有问题吗?

如果您使用的是
var\u dump($result);
请不要使用它。相反,请将结果放入$result变量。
$result=$stmt->get\u result();
我想您正在使用MySQLi,如果我错了,请纠正我

在我使用它的时间跨度内,每当这种问题出现在我面前时,我都会遇到在执行之前无法识别的查询问题。由于我的查询失败,因此没有创建
SQLStatement
对象(或其名称)。因此,不能对该对象调用
fetch.*
方法

我相信你的问题很简单:你的
HAVING
子句前面有一个逗号,它把你的查询搞得一团糟。我在我的电脑上复制了你的SQL结构和查询,一切正常

SELECT 
  s.id, s.name, s.preview, s.approved 
FROM 
  Statements s JOIN Tags t ON s.id = t.probID 
WHERE 
  s.approved = TRUE AND t.tag IN ('Geometry') 
GROUP BY s.id, s.name 
HAVING COUNT(DISTINCT t.tag) = 1
试试这个。
请注意:每当我必须在SQL中处理
true或false
,并将其存储为
*INT UNSIGNED
,我就想使用
1
作为
true
0
作为
false
不会产生任何问题,而使用
true
false
有时会产生任何问题!情况并非如此,无论如何y:)

我没有使用
var\u dump
,我使用的是
$res=$conn->query($select);