Как подключиться к внешней базе данных AWS RDS (не для основной базы данных WordPress)


Я пытаюсь подключиться к внешней базе данных на AWS RDS для отображения данных из внешней базы данных в WordPress с помощью плагина, который я пишу.

Моя единственная проблема заключается в подключении к внешней базе данных и извлечении из нее информации.

Кроме того, мне также нужно иметь возможность обновлять информацию во внешней базе данных.

Я пытаюсь использовать $awsdb = new wpdb( 'username', 'password', 'database', 'localhost' );, но, похоже, это не работает.

RDS имеет несколько иные сведения о доступе к обычному База данных MySQL, и я не знаком с RDS.

Детали, с которыми мне приходится работать, следующие:

adapter: mysql
encoding: utf8
database: database_name
username: username
password: password
host: thedatabase.0000000000.location-1.rds.amazonaws.com
port: 0000

Я размещал информацию так, как, по моему мнению, было бы правильно:

$awsdb = new wpdb( 'username', 'password', 'database_name', 'thedatabase.0000000000.location-1.rds.amazonaws.com' );

Но, похоже, это не работает.

Я также попробовал это с добавленным портом:

$awsdb = new wpdb( 'username', 'password', 'database_name', 'thedatabase.0000000000.location-1.rds.amazonaws.com:0000' );

Я немного запутался в этом тривиальном фрагменте головоломки.

Вот функция, которую я тестирую, пытаясь отобразить список сохраненных имен пользователей во внешнем таблица:

function test_connect_to_db() {
    $awsdb = new wpdb( 'username', 'password', 'database_name', 'thedatabase.0000000000.location-1.rds.amazonaws.com' );
    $rows = $awsdb->get_results( "SELECT * FROM table"  );
    echo '<div style="clear:both;text-align:center;"><h1>DB DETAILS</h1></div>';
    echo '<ul>';
    foreach ($rows as $obj) {
        echo '<li>'.$obj->user_id.'</li>';
    }
    echo '</ul>';

}
add_action( 'init', 'test_connect_to_db' );

Примечание: Я опустил фактические учетные данные для подключения и использовал текст-заполнитель.

Author: Benbodhi, 2018-05-28

1 answers

Я смог установить рабочее соединение, используя следующий код:

function test_connect_to_db() {

    $servername = 'thedatabase.0000000000.location-1.rds.amazonaws.com';
    $username = 'username';
    $password = 'password';
    $dbname = 'database';

    // Create connection
    $conn = new mysqli( $servername, $username, $password, $dbname );

    // Check connection
    if ( $conn->connect_error ) {
        die( 'Connection failed: ' . $conn->connect_error );
    } 

    $sql = 'SELECT id, firstname, lastname FROM table';
    $result = $conn->query( $sql );

    if ( $result->num_rows > 0 ) {
    // output data of each row
        while ( $row = $result->fetch_assoc() ) {
            echo '<br> id: '. $row['id']. ' - Name: '. $row['firstname']. ' ' . $row['lastname'] . '<br>';
        }
    } else {
        echo '0 results';
    }

    $conn->close();

}
add_action( 'init', 'test_connect_to_db' );
 1
Author: Benbodhi, 2018-05-28 22:35:37