如果您要更新远程数据库,我会实时更新,而不是每周更新一次。它为您提供实时的异地备份,并且您的编码也更容易。
在 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 访问远程数据库”这意味着你无法从本地计算机访问远程数据库...
如果由于某种原因您无法从本地计算机访问远程数据库,您需要在远程服务器上创建至少一个 PHP 页面,该页面可以执行您在本地执行的相同 SQL 查询。您需要使用安全连接 (HTTPS) 并传递某种身份验证凭据(至少某种哈希或加密密钥)以及要执行的 SQL。