2

mysql1 つのテーブルを持つデータベースを使用して単純なアプリを開発しています。ローカルデータベースを毎日更新しています。しかし、毎週、ボタンをクリックしてリモート mysql データベースに更新したいと考えています。I know about the synchronization and replication in PHPMyAdmin. But I don't want to use it.

ファイルからリモートおよびローカル データベース接続を正常に確認しましたが、同期の解決策を取得できませんでした。PHPで同期を行う方法はありますか?

私が読んだ記事はたくさんありますが、すべての記事はレプリケーションと同期を使用する方法を提供しています。このアプリをクライアントに配信する必要があるため。私は彼に最も簡単な解決策を与えたい.

*リモートデータベースへのcPanel、PHPMyAdminアクセス権があります。前もって感謝します。

4

2 に答える 2

1

このソフトウェアを使用してhttp://www.heidisql.com/を確認してください。ローカル システムで更新すると、リモート サーバーで自動的に更新されます。

于 2013-02-14T12:41:25.270 に答える
-1

リモート データベースを更新する場合は、週に 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 と共に何らかの認証資格情報 (少なくともある種のハッシュまたは暗号化されたキー) を渡す必要があります。

于 2013-02-14T14:42:13.617 に答える