我想连接wpdb
到另一个数据库。如何创建实例并向其传递数据库名称/用户名/密码?
谢谢
我想连接wpdb
到另一个数据库。如何创建实例并向其传递数据库名称/用户名/密码?
谢谢
是的,这是可能的。
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>";
在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);
没有人这么说,所以我想我应该添加一个更简单的方法。。
只要您的附加数据库具有与wordpress数据库相同的用户/密码详细信息,就可以在表名之前使用数据库名,如下所示
$query = $wpdb->prepare(\'SELECT * FROM dbname.dbtable WHERE 1\');
$result = $wpdb->get_results($query);
我还不能发表评论,但我想进一步阐述Wadih M.的答案(这很好)。
WP的数据库类是JustinVincent的ezSQL的定制版本。如果您喜欢该界面,并且希望创建一个不基于WordPress的网站,您可能需要查看它:http://justinvincent.com/ezsql
我正在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