使用wordpress wp-config文件连接到数据库


8

如何使用wp-config.php文件连接到数据库?

我正在尝试使脚本对Wordpress更友好,并且我需要连接到数据库,但无需将脚本安装为插件。

基本上我在剧本上

$host = "xxxxxxxxxxx"; //database location
$user = "xxxxxxxxxxx"; //database username
$pass = "xxxxxxxxxxx"; //database password
$db_name = "xxxxxxxx"; //database name

//Database Connection
$link = mysql_connect($host, $user, $pass);
mysql_select_db($db_name);

该脚本不能作为插件安装(这可以使事情变得更容易),因此我需要在安装时使用现有的wp-config.php连接到数据库。

提前致谢

编辑和澄清

1-我需要直接使用wp-config.php,无需修改。2-脚本位于www.example.com/script/ 3-不能作为插件完成,因为脚本的核心需要公开访问,而没有任何登录屏幕跳动。4-我的问题基本上是如何通过修改上面的脚本使用wp-config.php文件连接到数据库。


1
请解释为什么它不可能作为插件。
凯撒2012年

由于该脚本需要公开访问,而不是在管理员端(由于登录屏幕可能会碰到,因此无法在任何文件夹(如wp-content / plugins)上运行)。
user983248

我认为您可能想编辑问题,以说明要对脚本执行的操作。作为插件,几乎一切皆有可能:)
Stephen Harris

Paypal的IPN验证,请参阅,它在Plugins文件夹中对我不起作用,但在整个Wordpress安装之外的文件夹中对我来说都是有效的
user983248 2012年

Answers:


10

使用定义用户可以在wp-config中设置:

mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

编辑:由于您的脚本在Wordpress环境之外,因此您想要做的是在使用wp-config中的定义之前启动它。

require_once('./path/to/the/wp-config.php');
mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

1
您曾说过,目前它不适用于您自己的问题。不会拒绝投票,但请确保您的答案确实有效,并显示操作程序的错误之处。谢谢!:)顺便说一句:欢迎使用WPSE,不要让我这么小的推动使您无法回答其他问题。回答总是受到高度赞赏。
kaiser 2012年

与数据库的连接有效。我的问题是将调用它的函数抽象到外部文件。我在此处使用的值是用于设置wp-config.phpWordpress的定义集。您是否至少在尝试不起作用之前尝试过它?
2012年

这是一个有点过了原来的问题
user983248

您是否真的尝试过?我遇到了与您完全相同的问题(连接到数据库),并且通过使用wp-config的定义集(如您所要求的)解决了它。您唯一需要的变量是$ db_name,因为所有其他变量都已经在WP环境中了,这要归功于wp-config.php。只要加载了Wordpress环境,您就可以完全访问这些定义。 编辑:您的脚本是否在Wordpress环境之外?
2012年

是的,请阅读我的最后一次编辑,并感谢您抽出宝贵时间
user983248

3

您可以使脚本成为WordPress帖子的一部分,只需使用$wpdbWordPress本身提供的对象即可。该$wpdb对象已经建立了数据库连接,您可以使用它来执行任何数据库操作:插入,更新,查询等。这是在WordPress中执行DB事务的首选方法,因为您不必打开任何其他数据库连接。

这是一个简单的示例,例如用于获取将来的帖子:

$posts = $wpdb->get_results("SELECT ID, post_title FROM wp_posts WHERE post_status = 'future' AND post_type='post' ORDER BY post_date ASC LIMIT 0,4");

请查看此文章以获取其他信息:http : //wp.smashingmagazine.com/2011/09/21/interacting-with-the-wordpress-database/


1
当我从您的答案中删除链接时,除了$wpdb可以执行基本数据库任务的提示之外,我没有任何关于实际解决方案的信息。您介意改善答案以展示一些基本示例吗?谢谢。
kaiser 2014年

那里的文章对$wpdb对象有非常详细的描述,所以我不想在那里剪切和粘贴很多文本。但基本上,如果您的脚本是WordPress的一部分,则可以使用该$wpdb对象来运行数据库查询,如下所示: $posts = $wpdb->get_results("SELECT ID, post_title FROM wp_posts WHERE post_status = 'future' AND post_type='post' ORDER BY post_date ASC LIMIT 0,4"); 询问该问题的人稍后澄清了他不想将其制成插件的想法,所以我的答案是现在不那么重要了,所以我决定保留原样。
obaranovsky 2014年

请始终将任何需要的信息放入问题中。评论会定期清理。无论如何,我又读了另一个答案和问题,并将两者都-1。到现在为止,原始问题仍然看起来像是企图入侵/感染网站,而另一个答案却与每一行中的最佳实践都不对。
kaiser 2014年

我认为这是更好的解决方案。最好使用内置的WordPress功能。查看$ wpdb对象后,它应该变得清晰。
user3135691
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.