Я хочу вставить новые строки из локальной таблицы в удаленную таблицу, я создал для нее php-скрипт, но он не работает.
Удаленная и локальная – база данных, таблица и поля одинаковы.
Я так делаю
//connection $remote_hostname='xxx.xxx.xxx.xxx:3306'; $hostname='localhost'; $username = 'username'; $password = 'password'; $remote_connection = mysql_connect($remote_hostname, $username, $password); $connection = mysql_connect($hostname, $username, $password); $tablename="pc_games"; $database = 'games'; // some row count here $remoterows $local_query = "SELECT * FROM $tablename LIMIT 100 OFFSET $remoterows"; $local_result = mysql_query($local_query, $connection) or trigger_error(mysql_error()); while($list=mysql_fetch_array($local_result)) { $remote_update=mysql_query("INSERT INTO $tablename SELECT * from $tablename"); $remote_update_result = mysql_query($remote_update, $remote_connection) or trigger_error(mysql_error()); }
Это не работает и показывает ошибку. Duplicate entry '1' for key 'PRIMARY'
, но дублировать запись нет.
Если я делаю это так, это работает, новые строки будут вставлены в удаленную базу данных.
while($list=mysql_fetch_array($local_result)) { $id=$list['id']; $pflink=$list['pflink']; $image=$list['image']; $pagelink=$list['pagelink']; $title=$list['title']; // and so on... $remote_update=mysql_query("INSERT INTO $tablename SET id='$id', image='$image', pagelink='$pagelink', title='$title'......"); $remote_update_result = mysql_query($remote_update, $remote_connection) or trigger_error(mysql_error()); }
вwhile($list=mysql_fetch_array($local_result)) { $id=$list['id']; $pflink=$list['pflink']; $image=$list['image']; $pagelink=$list['pagelink']; $title=$list['title']; // and so on... $remote_update=mysql_query("INSERT INTO $tablename SET id='$id', image='$image', pagelink='$pagelink', title='$title'......"); $remote_update_result = mysql_query($remote_update, $remote_connection) or trigger_error(mysql_error()); }
У меня есть много колонок в базе данных, а также многие базы данных, я хочу сделать это первым способом, так как я хочу использовать эти коды для другой базы данных, просто изменяя $database
и $tablename
в файле $tablename
для другой базы данных.
Пожалуйста, посмотрите и предложите любой возможный способ сделать это.