Codeigniter – синхронизация таблиц MySQL с другой базой данных на другом сервереPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Codeigniter – синхронизация таблиц MySQL с другой базой данных на другом сервере

Сообщение Anonymous »

У меня есть две базы данных на разных серверах, которые мне нужно синхронизировать. Две базы данных определены в моей конфигурации базы данных, и я настраиваю соединения как таковые:

Код: Выделить всё

$DB1 = $this->load->database('master', TRUE);
$DB2 = $this->load->database('live', TRUE);
Как я могу получить все содержимое таблицы «продукты» в $DB1 и синхронизировать его в $DB2 — я мог бы просто усечь таблицу в $DB2 и записать полные данные (неэлегантно и может вызвать проблемы на работающем сайте) или я могу использовать codeigniter для правильной синхронизации второй таблицы; добавление, обновление и удаление записей по каждой записи?

Я пробовал:

Код: Выделить всё

$products = $DB1->from('products')->get()->result_array();

$count = count($products);

for($i = 0 ; $i < $count; $i++)
{
$q = $DB2->from('products')->where('id', $products[$i]['id'])->get();

if($q->num_rows() > 0)
{
[Update the data]
}
else
{
[Insert the data]
}
}
Но этот метод не учитывает записи, существующие в $DB2, которые были удалены из $DB1? Я предпочитаю этот метод обновления продуктов, но не могу размещать устаревшие продукты на действующем сайте.

Подробнее здесь: https://stackoverflow.com/questions/220 ... -different
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»