リモート データベースを更新する場合は、週に 1 回ではなく、リアルタイムで更新します。これにより、リアルタイムのオフサイト バックアップが提供され、コーディングも容易になります。
PHPMyAdmin では、リモート データベースに対する権限を持つ新しい MySQL ユーザーを作成できます。すべての権限を持つ「root」MySQL ユーザーを使用するよりも、リモート データベースの更新に必要な権限のみを持つユーザー アカウントを作成することをお勧めします。
次に、既存の PHP ファイルを変更するだけで、ローカル データベースに対して SQL を実行するすべての場所で、リモート データベースに対して同じ SQL を実行するコマンドを追加します。例えば:
(このコードはテストされていないため、構文/論理エラーが含まれている可能性があります)
<?php
$local_dsn = 'mysql:host=localhost;dbname=my_database';
$local_username = 'my_local_username';
$local_password = 'my_local_password';
$remote_dsn = 'mysql:host=remote_ip_address;dbname=my_database';
$remote_username = 'my_remote_username';
$remote_password = 'my_remote_password';
$local = new PDO($local_dsn, $local_username, $local_password);
$remote = new PDO($remote_dsn, $remote_username, $remote_password);
$sql = 'UPDATE my_table SET column1 = ? WHERE id = ?';
try{
$local_stmt = $local->prepare($sql);
$local_stmt->bindValue(1, $column1);
$local_stmt->bindValue(2, $id);
if ($local_stmt->execute() && 0 < $local_stmt->rowCount()){
$remote_stmt = $remote->prepare($sql);
$remote_stmt->bindValue(1, $column1);
$remote_stmt->bindValue(2, $id);
$remote_stmt->execute();
}
}catch(PDOException $e){
echo "An error occurred processing sql statement ($sql):" . $e->getMessage();
exit;
}
?>
ローカルの Windows マシンからリモート データベースにアクセスできるかどうかを判断するのは困難です。「ファイルからリモートおよびローカルデータベース接続を正常に確認しました。」と言うと、ローカルマシンからリモートデータベースにアクセスできることを意味しますが、「リモートデータベースへのcPanel、PHPMyAdminアクセスがあります」と言うと、ローカル マシンからリモート データベースにアクセスできない...
何らかの理由でローカル マシンからリモート データベースにアクセスできない場合は、リモート サーバー上に、ローカルで実行しているのと同じ SQL クエリを実行できる PHP ページを少なくとも 1 つ作成する必要があります。安全な接続 (HTTPS) を使用し、実行する SQL と共に何らかの認証資格情報 (少なくともある種のハッシュまたは暗号化されたキー) を渡す必要があります。