使用wpdb连接到单独的数据库

时间:2010-09-10 作者:Wadih M.

我想连接wpdb 到另一个数据库。如何创建实例并向其传递数据库名称/用户名/密码?

谢谢

4 个回复
最合适的回答,由SO网友:Wadih M. 整理而成

是的,这是可能的。

wpdb对象可用于访问任何数据库和查询任何表。绝对不需要与Wordpress相关,这很有趣。

好处是能够使用所有wpdb类和函数,如get_results, 这样就不需要再发明轮子了。

以下是方法:

$mydb = new wpdb(\'username\',\'password\',\'database\',\'localhost\');
$rows = $mydb->get_results("select Name from my_table");
echo "<ul>";
foreach ($rows as $obj) {
   echo "<li>".$obj->Name."</li>";
}
echo "</ul>";

SO网友:jerclarke

在WordPress中,连接到第二个数据库很容易,只需创建WPDB类的一个新实例,并使用它,就像使用我们都知道和喜欢的标准$WPDB实例一样。

假设第二个数据库与主WP数据库具有相同的登录信息,您甚至可以使用WP config中的预定义常量。php以避免硬编码登录信息。

/**
 * Instantiate the wpdb class to connect to your second database, $database_name
 */
$second_db = new wpdb(DB_USER, DB_PASSWORD, $database_name, DB_HOST);
/**
 * Use the new database object just like you would use $wpdb
 */
$results = $second_db->get_results($your_query);

SO网友:CommentLuv

没有人这么说,所以我想我应该添加一个更简单的方法。。

只要您的附加数据库具有与wordpress数据库相同的用户/密码详细信息,就可以在表名之前使用数据库名,如下所示

$query = $wpdb->prepare(\'SELECT * FROM dbname.dbtable WHERE 1\');
$result = $wpdb->get_results($query);

SO网友:gabrielk

我还不能发表评论,但我想进一步阐述Wadih M.的答案(这很好)。

WP的数据库类是JustinVincent的ezSQL的定制版本。如果您喜欢该界面,并且希望创建一个不基于WordPress的网站,您可能需要查看它:http://justinvincent.com/ezsql

结束

相关推荐

为什么WordPress从MySQL获得的帖子来自虚拟主机名,而不是直接主机名?

我正在Mac上开发一个WordPress网站,运行OS X 10.6.4。在开发过程中,我使用OS X的内置Apache服务器在本地运行该站点。我已经安装了WordPress,并将其连接到OS X的MySQL,没有问题。该网站似乎运行良好,我可以发布、编辑等。WordPress安装在一个名为~/Sites/mysite.dev.我还定制了.hosts 文件和Apachehttpd-vhosts.conf 文件,以重定向对mysite的请求。请转到这个文件夹。所以当我进去的时候http://mysite.d