我正在为WordPress创建一个插件,部分插件要求我连接到外部WordPress站点并使用该站点的外部数据库来获取一些信息.我建立了一个连接,我使用下面的代码访问了外部数据库的$wpdb:
global $new_wpdb;
define( 'BLOCK_LOAD', true );
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-config.php' );
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-includes/wp-db.php' );
$new_wpdb = new wpdb( $username, $password, $dbname, $servername);
$new_wpdb->show_errors();
当我使用print_r($new_wpdb);时,我得到了数组,我可以看到外部数据库的用户名,密码等的值.但是,前缀或base_prefix没有值.它只显示以下前缀:
[prefix] => [base_prefix] =>
如何获取外部数据库使用的前缀?
解决方法:
你究竟是如何连接外部网站的WordPress的?
如果您的代码能够在远程站点上使用require_once wp-config.php,则应在$table_prefix变量中定义前缀.
或者,如果您可以对WordPress数据库运行数据库查询(需要知道数据库名称或有连接),您可以运行SHOW TABLES LIKE’%wp_users’之类的查询,然后运行$table_prefix = str_replace(‘wp_users’,’ ‘,$result);
标签:wordpress,php,mysql,database,sql
来源: https://codeday.me/bug/20190708/1400076.html