我有以下代码。
我已经尝试过搜索选项中的一些骚动,但没有任何帮助。
所有表都有一行名为:user_id,其中包含数据,但查询仍然提供false
$user
变量的值为29,在我的表中如下所示:
+---------+---------+-------+-----------+
+ id | user_id | jaar + kenmerk |
+---------+---------+-------+-----------+
+ 1 | 29 | 2015 + standaard |
+---------+---------+-------+-----------+
$query = "SELECT buitenklimaat.user_id, kasklimaat.user_id, watermangement.user_id, energie.user_id FROM buitenklimaat, kasklimaat, watermangement, energie WHERE user_id = ".$user." AND kenmerk = 'standaard' AND jaar = ".date("Y")."";
$result = mysqli_query($conn, $query);
if($result === false) {
echo 'Query failed';
die();
}
else {
// do something
}
答案 0 :(得分:3)
如果字段user_id存在于多个表中,则还需要在where子句中为字段添加前缀。否则,您的数据库将不知道它应该在哪个表中查找user_id字段。但即使您修复此错误后,查询可能也不会返回您想要的内容。看看一些涵盖连接语法的SQL教程。
$query = "SELECT buitenklimaat.user_id, kasklimaat.user_id, watermangement.user_id, energie.user_id FROM buitenklimaat, kasklimaat, watermangement, energie WHERE <TABLENAME MISSING>.user_id = ".$user." AND kenmerk = 'standaard' AND jaar = ".date("Y")."";
答案 1 :(得分:0)
您可能需要将所有这些表连接在一起以使user_id条件正常工作:
$query = "SELECT buitenklimaat.user_id, kasklimaat.user_id,
watermangement.user_id, energie.user_id FROM buitenklimaat, kasklimaat,
watermangement, energie
WHERE buitenklimaat.user_id = kasklimaat.user_id
AND buitenklimaat.user_id = watermangement.user_id
AND buitenklimaat.user_id = energie .user_id
AND buitenklimaat.user_id = ".$user." AND kenmerk = 'standaard'
AND jaar = ".date("Y")."";