当我从WordPress中的远程MySQL数据库中提取数据时,内置的WordPress功能不工作吗?

时间:2012-09-24 作者:soumendu

在我的一个页面中,我必须从远程mysql数据库获取数据。通过创建$wpdb类的新实例,我们可以连接到远程mysql数据库。

$mydb=新wpdb(DB\\U USER2、DB\\U PASSWORD2、DB\\U NAME2、DB\\U HOST2);

$post\\u author=$mydb->get\\u row(“从wp\\u users中选择display\\u name,其中ID=1”);

上述查询工作正常。但是,当我们使用get\\u the\\u author\\u meta或the\\u author\\u meta时,它不会返回/打印任何内容。这对于每个wordpress内置函数都是一样的。

有人能告诉我们为什么连接到远程数据库时内置的wordpress功能不起作用吗?

2 个回复
SO网友:Tom J Nowell

WordPress API依赖于全局$wpdb对象,您可以定义wpdb类型的任意对象,但这并不意味着WordPress将使用它。

相反,类似以下内容可能更好:

global $wpdb;
$tempDB = $wpdb;
$wpdb = new wpdb(DB_USER2, DB_PASSWORD2, DB_NAME2, DB_HOST2);
// do your remote SQL stuff

// perhaps a WP_Query loop here?

// we\'re done, now restore the default and cleanup
$wpdb = $tempDB;
我会建议,虽然有非常非常少的实例使用WordPress安装连接到第二个DB是最佳做法,但有很多更好的方法。多站点或RSS提要聚合可能会对您更好。

SO网友:dzogchen

第二个数据库是wordpress安装的吗?我这样问是因为您想要使用的函数是特定于wordpress和wordpress DB的,所以如果您访问的是“常规”(非wordpress)MySQL数据库,您肯定会遇到问题。

在我想将其他地方的数据带到wordpress页面中,或者从wordpress页面的其他地方写入数据的情况下,我很容易地将其他数据库与wordpress数据库同时使用。但是您需要使用直接的php来获取/设置您想要的信息。

结束

相关推荐

How to load WP functions?

我有一个mymail.php 发送电子邮件的脚本(我使用require_once( $_SERVER[\'DOCUMENT_ROOT\'] . \'/wp-includes/class-phpmailer.php\' );.) 并输出纯文本字符串(如“电子邮件发送成功”)我想在我的脚本中使用WP中定义的函数。我要调用的特定函数是get_option() 以检索网站所有者的电子邮件用户。要为特定get_option() 函数以及导入整个WP核心的内容(如主题的.php文件可用的上下文)?