Как подключиться к внешней базе данных 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' );
Примечание: Я опустил фактические учетные данные для подключения и использовал текст-заполнитель.
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' );