cannot connect database

时间:2017-12-27 作者:tipsmenangcom

我是wordpress的新手。我计划从我自己的php代码连接wordpress数据库。但我在尝试连接数据库时遇到问题,每次连接都会得到错误结果。im使用此代码

$user_name = "myusername";
$password = "password";
$database = "mydatabasename";
$host_name = "localhost";

$connect_db=mysqli_connect($host_name, $user_name, $password);

$find_db=mysqli_select_db($database);

if ($find_db) {
 echo "Database found";
 mysqli_close($connect_db);
}
else {
 echo "Database notfound";
 mysqli_close($connect_db);
}

4 个回复
SO网友:Clinton

虽然可以使用mysqli->connect进行连接,但最好使用内置的Wordpress功能(即使对于外部代码也是如此)。

我的意思是您应该使用wpdb类。看见https://codex.wordpress.org/Class_Reference/wpdb 了解更多信息。

首先,您需要链接到Wordpress类:

echo \'<h1>WP Connect DB</h1>\';
echo \'<p>Directory Check: \'.$_SERVER[\'DOCUMENT_ROOT\'] . \'/wp-load.php</p>\';
require_once( $_SERVER[\'DOCUMENT_ROOT\'] . \'/wp-load.php\' );
如果出现错误,请检查wp load的路径是否正确,必要时进行调整。

接下来,您可以定义用户和数据库等。

/** The name of the database for WordPress */
define(\'DB_NAME\', \'mydatabase\');
/** MySQL database username */
define(\'DB_USER\', \'myusername\');
/** MySQL database password */
define(\'DB_PASSWORD\', \'mypassword\');
/** MySQL hostname */
define(\'DB_HOST\', \'localhost\');
此信息直接来自wp配置。php文件。这些不需要定义为常量,您可以直接将其提交到以下数据库连接代码的正确位置:

$wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
最后,您可以对结果进行处理,例如:

$rows = $wpdb->get_results( "SELECT * FROM wp_posts" );
echo \'<h3>Results</h3><pre>\'.var_export($rows,true).\'</pre>\';
将所有这些放在一起,您的代码将如下所示:

echo \'<h1>WP Connect DB</h1>\';
echo \'<p>Directory: \'.$_SERVER[\'DOCUMENT_ROOT\'] . \'/wpdev/wp-load.php</p>\';
require_once( $_SERVER[\'DOCUMENT_ROOT\'] . \'/wpdev/wp-load.php\' );
define(\'SHORTINIT\', true );
/** The name of the database for WordPress */
define(\'DB_NAME\', \'mydatabase\');
/** MySQL database username */
define(\'DB_USER\', \'myusername\');
/** MySQL database password */
define(\'DB_PASSWORD\', \'mypassword\');
/** MySQL hostname */
define(\'DB_HOST\', \'localhost\');
$wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
$rows = $wpdb->get_results( "SELECT * FROM wp_posts" );
echo \'<h3>Results</h3><pre>\'.var_export($rows,true).\'</pre>\';
添加了额外的SHORTINIT定义以最小化Wordpress负载,但这不是必需的。

我希望这会有所帮助。

SO网友:D. Dan

尝试使用wpdb. 它是用于处理外部数据库的内置类。

SO网友:Nefro

也许您不需要连接到数据库,但需要在自定义代码上实现wordpress函数?

只需包括wp配置。php文件,您可以使用所有wordpress函数。

<?php

require_once(\'wp-config.php\');

$posts = new WP_Query(...);
之后,您可以使用wordpresswpdb

$myrows = $wpdb->get_results( "SELECT id, name FROM mytable" );

SO网友:Waleed Asender

无需自定义mysql连接,您可以包含wp博客头。php文件,并在php文件中使用所有wp功能:

<?php require \'PATH-TO-WP/wp-blog-header.php\'; ?>

结束

相关推荐

SQL Database Lost

我丢失了我的数据库,当他们恢复文件时,我在数据库目录中有两个文件,我假设这是我数据库的数据。如何使用这两个文件恢复数据库。wp\\U选项。MYI和wp\\U选项。MYD公司谢谢