WordPress 在其他 PHP 文件中使用 wp_config.php 变量连接到数据库
WordPress Using wp_config.php variables in other PHP files to Connect to DB
我有一个连接到 wordpress 数据库的简单 php 文件,任何需要的东西都可以正常工作。但我想使用来自 wordpress wp_config.php
文件的值将我的 php 文件连接到数据库。我试过了,但没用
<?php
require_once('wp-config.php');
$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD , DB_NAME);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
这是我的默认 PHP 文件。该文件位于我在另一个模板中用于自定义搜索的 WordPress 项目内的一个目录中。
// Create connection
$conn = new mysqli($servername, $username, $password , $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
注意:重要数据我改了!
您对此有解决方案吗?
相同的代码对我来说工作正常。
Check the wp-config.php path and try to echo the constants and
check you have included the correct file before passing to mysqli
echo DB_HOST;
echo DB_USER;
echo DB_PASSWORD;
echo DB_NAME;
或者您可以使用 wp-load.php include('/path/wp-load.php');
include_once ('/path/wp-load.php');
$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD , DB_NAME);
// Check connection
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
您确实应该使用 PDO 进行连接,但除此之外,也许尝试使用 constant("variable")
而不是尝试直接使用变量:
<?php
require_once('wp-config.php');
$conn = new mysqli(constant("DB_HOST"), constant("DB_USER"), constant("DB_PASSWORD"), constant("DB_NAME"));
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
使用 wp-config 中定义的用户集:
mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
因为你的脚本在 Wordpress 环境之外,试试这个:
require_once(path/to/wp-config.php');
mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
由于您想在其他外部应用程序或模板中连接 WP DB 以从 WP DB 获取数据,您可以直接在文件中包含 wordpress 文件。
使用 wp-blog-header.php
会将完整的 wordpress 加载到您当前的模板中,然后您就可以使用它了。
include_once $_SERVER['DOCUMENT_ROOT'].'/YOUR_WP_DIR/wp-blog-header.php';
global $wpdb; // wordpress database object
print_r($wpdb);
wp-blog-header.php的内容:
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/
if ( !isset($wp_did_header) ) {
$wp_did_header = true;
// Load the WordPress library.
require_once( dirname(__FILE__) . '/wp-load.php' );
// Set up the WordPress query.
wp();
// Load the theme template.
require_once( ABSPATH . WPINC . '/template-loader.php' );
}
我有一个连接到 wordpress 数据库的简单 php 文件,任何需要的东西都可以正常工作。但我想使用来自 wordpress wp_config.php
文件的值将我的 php 文件连接到数据库。我试过了,但没用
<?php
require_once('wp-config.php');
$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD , DB_NAME);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
这是我的默认 PHP 文件。该文件位于我在另一个模板中用于自定义搜索的 WordPress 项目内的一个目录中。
// Create connection
$conn = new mysqli($servername, $username, $password , $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
注意:重要数据我改了! 您对此有解决方案吗?
相同的代码对我来说工作正常。
Check the wp-config.php path and try to echo the constants and check you have included the correct file before passing to
mysqli
echo DB_HOST;
echo DB_USER;
echo DB_PASSWORD;
echo DB_NAME;
或者您可以使用 wp-load.php include('/path/wp-load.php');
include_once ('/path/wp-load.php');
$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD , DB_NAME);
// Check connection
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
您确实应该使用 PDO 进行连接,但除此之外,也许尝试使用 constant("variable")
而不是尝试直接使用变量:
<?php
require_once('wp-config.php');
$conn = new mysqli(constant("DB_HOST"), constant("DB_USER"), constant("DB_PASSWORD"), constant("DB_NAME"));
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
使用 wp-config 中定义的用户集:
mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
因为你的脚本在 Wordpress 环境之外,试试这个:
require_once(path/to/wp-config.php');
mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
由于您想在其他外部应用程序或模板中连接 WP DB 以从 WP DB 获取数据,您可以直接在文件中包含 wordpress 文件。
使用 wp-blog-header.php
会将完整的 wordpress 加载到您当前的模板中,然后您就可以使用它了。
include_once $_SERVER['DOCUMENT_ROOT'].'/YOUR_WP_DIR/wp-blog-header.php';
global $wpdb; // wordpress database object
print_r($wpdb);
wp-blog-header.php的内容:
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/
if ( !isset($wp_did_header) ) {
$wp_did_header = true;
// Load the WordPress library.
require_once( dirname(__FILE__) . '/wp-load.php' );
// Set up the WordPress query.
wp();
// Load the theme template.
require_once( ABSPATH . WPINC . '/template-loader.php' );
}