不要用多数据库获得价值

时间:2015-04-10 06:18:03

标签: php mysql

我有两个连接字符串用户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();
} 

我使用连接查询将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...但它也不起作用。我错了什么?

1 个答案:

答案 0 :(得分:0)

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

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

尝试在上面的语句中将db1和db2中的table_name替换为真实的表名。