当我与普通字段(ID)进行比较时,我想加入两个不同的数据库表。以下代码我在我的网站上显示,但它显示错误
我的代码:
$conn = mysqli_connect("localhost", "username1", "password1", "databse1");
$conn1 = mysqli_connect("localhost", "username2", "password2", "database2");
$result = '';
$query = "SELECT * FROM database1.table1,database2.table1 where
database1.table1.id=database2.table1.id ";
$sql = mysqli_query($conn,$query);
$result .='
<table class="table table-bordered">
<tr>
<th width="20%">ID</th>
<th width="10%">Qty</th>
</tr>';
if(mysqli_num_rows($sql) > 0)
{
while($row = mysqli_fetch_array($sql))
{
$result .='
<tr>
<td>'.$row["id"].'</td>
<td>'.$row["qty"].'</td>
</tr>';
}
}
else
{
$result .='
<tr>
<td colspan="5">No Item Found</td>
</tr>';
}
$result .='</table>';
echo $result;
错误讯息:
警告:mysqli_num_rows()要求参数1为mysqli_result,布尔值在
中给出请帮助和帮助我......
答案 0 :(得分:0)
请尝试以下查询
select table1.*,table2.* from table1
LEFT JOIN table2 ON table2.id = table1.id
如需进一步了解MYSQL JOINS
,请点击此处:https://dev.mysql.com/doc/refman/5.7/en/join.html
修改强>
查询不起作用,因为查询中存在错误,您创建了两个连接字符串$conn
和$conn1
并且仅使用1,您不需要两个不同的连接字符串,请{{1数据库username1
和database1
以及删除database2
的权限仅使用$conn1
如果您使用$conn
之类的任何本地服务器,那么WAMP,XAMPP
用户可以访问所有数据库,如果您在root
,则按照以下步骤添加用户数据库特权:http://www.thehostingnews.com/how-to-grant-mysql-privileges-in-cpanel.html
EDIT 2 根据OP,两个数据库都在不同的服务器上,可以通过here和here检查已经回答过的一些不同的可能解决方案
另一种可能的解决方案
1)您可以在cpanel
上创建临时表,并将数据从database2
插入database1
临时表,仅在database2's
使用JOIN查询< /强>
2)或者你可以使用两个不同的查询,首先从数据库1的表中获取id并使用该id激发另一个查询到database2&#39的表
编辑3(根据我的#2nd建议编辑代码)
database2