2009-12-27 73 views
1

我有一个使用两个数据库的Wordpress网站 - 一个部分查询一个数据库(“database_A”),然后Wordpress连接到它自己的数据库(“database_B”)。它的工作很好,直到我去调用这个函数WordPress的选择错误的数据库

一切:

$pageposts = $wpdb->get_results($querystr, OBJECT); 

WordPress的突然选择了错误的数据库(“database_A”)时,它只是用(“database_B”)。 (a)阻止它选择(“database_A”)或(b)打电话让它选择(“database_B”)?

+0

我想你可能需要发布解决此问题地区的一些更多的代码。最明显的解释是'$ wpdb'正在改变,但没有更多的代码就不可能说明原因。 – ChrisF 2009-12-27 19:06:33

+0

我承认这是一个灰色区域,但我认为这将更适合在serverfault或超级用户 – Kimvais 2009-12-27 19:08:08

+2

不,这绝对是一个编程问题,属于这里。 – 2009-12-27 19:10:27

回答

2

WP中的wpdb类有一个select()方法。你应该可以直接调用它。

$wpdb->select('database_B'); 

您也可以实例使用database_b第二个对象:

$wpdb_b = new wpdb($db_b_user, $db_b_pwd, 'database_B', $db_b_host); 
+0

谢谢Jage!这很好地重新连接到Wordpress数据库! – Ari 2009-12-27 19:26:37

0

您可以创建一个新的$ WPDB-VAR,像这样:

<?php 
$wpdb2 = new wpdb($user, $dbpassword, $db2, $dbhost); 
?> 

现在您可以轻松地选择从其他数据库项目:

<?php 
$pageposts = $wpdb2->get_results($querystr, OBJECT); 
?> 

我希望它可以帮助你:]

(编辑:你确定它突然改变了数据库吗?我的意思是,它在使用database B之前使用了database A,这几乎是不可能的......)