尝试从多个表中选择行时出现PHP错误

时间:2015-04-27 20:22:57

标签: php mysql select mysqli

我试图在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子句中的列'用户'是不明确的”。

2 个答案:

答案 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;"