我试图在PHP中使用SELECT *
语句,但是来自两个表。我的查询如下:
$query2="SELECT * FROM london, manchester WHERE user = '$row[user]'";
$result = mysqli_query($con,$query2);
如果我只用一个表来试试,比如说london
,那么查询工作正常。但是,在尝试查询两个表时,我收到以下错误:
mysqli_fetch_array() expects parameter 1 to be mysqli_result,
以下是我如何调用结果......
while($row = mysqli_fetch_array($result)) {
results....
}
在查看错误消息发生的确切原因后,我被告知“where子句中的列'用户'是不明确的”。
答案 0 :(得分:1)
对于像该语句这样的简单内容,请尝试使用MySQL UNION。
Select * from london where user = '$row[user]'
UNION Select * from manchester
where user = '$row[user]'
或者使用PDO ......
Select * from london where user = :user UNION Select * from manchester where user = :user
...然后使用您的变量绑定:user。
答案 1 :(得分:0)
尝试为表添加别名,以便mysql知道要引用哪个“用户”列。
重写这样的事情
"SELECT * FROM london AS L, manchester AS M WHERE L.user = '$row[user]' AND L.user=M.user;"