我正在尝试从同一服务器上的单独WordPress安装中检索数据。我能够使用wpdb类成功地连接到备用数据库并获得结果,但是,我似乎无法将类方法用于新创建的数据库。
澄清一下:我有2个Wordpress安装。我正在尝试从一个数据库中检索帖子,并将其从另一个安装中检索到一个页面中。新数据库是另一个基本的Wordpress数据库。
这起作用并为我带来数据:
$query = "
SELECT *
FROM wp_posts
WHERE post_type=\'post\'
AND post_status=\'publish\'
";
$rows = $newdb->get_results($query, ARRAY_A);
此操作无法获得结果:
$query = "
SELECT *
FROM $newdb->posts
WHERE post_type=\'post\'
AND post_status=\'publish\'
";
$rows = $newdb->get_results($query, ARRAY_A);
我正在使用以下连接数据库:
$newdb = new wpdb(\'username\',\'password\',\'database\',\'localhost\');
我发现的所有材料都使用wpdb方法与新数据库进行交互,如果没有使用它们的能力,我很难使查询更加复杂。
我错过了什么?
最合适的回答,由SO网友:Jörn Lund 整理而成
实例化a后wpdb
保存表名的Instance变量仍然不存在。你需要打电话给set_prefix()
方法,以便根据其他wordpress表前缀设置所有表名。(很可能是wp_
在您的情况下)。
$newdb = new wpdb( DB_USER , DB_PASSWORD , DB_NAME , DB_HOST );
var_dump($newdb->posts); // NULL = not good
$newdb->set_prefix(\'wp_\');
var_dump($newdb->posts); // \'wp_posts\' yeah!