Don';无法通过多数据库获取值


Don't get value with multi database

我有两个连接字符串用户DBO:

字符串1:

try {
$conn1 = new PDO('mysql:host=ip1;dbname=db1','root', '123456');
$conn1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} 
catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
} 

字符串2:

try {
$conn2 = new PDO('mysql:host=ip2;dbname=db2','root', '123456');
$conn2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} 
catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
} 

i使用联接查询联接tb1到tb2:

$stmt = $conn1->prepare(" select db1.*,db2.col1 from db1 left join db2 on db1.col1=db2.col2");
$stmt -> execute();
$result=$stmt->fetchAll();
if(count($result)){
foreach($result as $row){
echo $row[col1]";
}}
else{
Echo 'Not rows';                                          
}
}
catch(PDOException $e){
echo $e->getMessage();
}

它不起作用。我试过$stmt = $conn1,$conn2-> prepare...,但它也不起作用。我做错什么了?

您在联接语句中没有提到Tables名称。我想你可能想做这样的事情:

SELECT * FROM db1.table_name as d1 LEFT JOIN db2.table_name as d2
ON d1.col1 = d2.col2

在上面的语句中,尝试用db1和db2中的table_name替换实际的Tables名称。