因此,我试图连接到外部db,以便访问/更新位于不同非wordpress数据库(oracle)上的信息。
我尝试构建一个新的wpdb对象(正如stack exchange上的许多其他帖子所建议的那样),如下所示:
function initialize_rgr_db() {
global $rgr_db;
$rgr_db = new wpdb(\'usr\', \'pw\', \'sid\', \'host\');
}
然而,当vardumping$rgr\\u db对象时,我不断遇到“连接到数据库时出错”
调试。日志显示以下内容:
PHP Warning: mysqli_real_connect(): (HY000/2003): Can\'t connect to MySQL server on \'host\' (111) in /home/dowxx543z3a1/public_html/wp-includes/wp-db.php on line 1612
或者,我尝试像这样使用oci\\u connect:
$conn = oci_connect(\'usr\', \'pw\', \'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=host)(Port=1521)))(CONNECT_DATA=(SID=sid)))\');
if(!$conn) {
error_log(\'DB CONNECTION ERROR NOOO\');
die();
}
...
但后来我调用了未定义的函数。
根据我的发现,似乎oci8没有安装在wordpress中。我在网上找到了关于如何在xampp或本地环境中安装oci8的说明,但与wordpress无关,坦率地说,我害怕把事情搞砸。
所以,这是我的问题。如果有人能告诉我wpdb有什么问题,我很想知道。我猜可能是先知sid!=wpdb需要作为第三个参数的dbname。
否则,是否有人可以提供一些关于如何安装oci8(通过cpanel)的指导?
非常感谢你。
最合适的回答,由SO网友:Tom J Nowell 整理而成
You can\'t use WPDB
to connect to databases that aren\'t MySQL/MariaDB based.
没有WordPress API或基于WP的解决方案可以做到这一点。相反,您需要在插件中使用通用PHP解决方案,并且应该查看通用PHP资源和社区,而不是WP资源和社区。
我还可以保证,这将需要安装额外的PHP扩展,而不仅仅是PHP代码。这样做需要root用户访问服务器,并且需要您的主机参与。
您应该向stack overflow咨询如何使用该PHP扩展,向Serverfault咨询如何安装它,无论哪种方式,您都已经离开了WordPress的专业知识领域。
顺便提一下,您是否考虑过在另一端设置一个REST API?