Перемещение строки из одной таблицы в другую (вставка списка значений не соответствует списку столбцов)

Я использую Laravel PHP Framework 'Свободный построитель запросов для перемещения строк из одной таблицы в другую. PDO используется. При использовании необработанного запросаDB::query()Я получаю ошибку:

ошибка

SQLSTATE[21S01]: Insert value list does not match column list: 
1136 Column count doesn't match value count at row 1

SQL: INSERT IGNORE into listings_archive VALUES (?, ?)

запрос

// Get rows from first table
$rows = DB::table('table_1')
        ->where('id', '>', '12345')
        ->get();

// Copy rows to second table
foreach($rows as $row) {
    $listing = get_object_vars($row);
    DB::query('INSERT IGNORE into table_2 VALUES (?, ?)', $row);
}

var_dump of $ row

array(39) {
    ["id"]=>
    string(7) "2511877"
    ["name"]=>
    string(2) "AB"
    ["color"]=>
    NULL
    ["type"]=>
    NULL
    ...

Что является причиной ошибки и как ее можно исправить? Я попытался удалить элементы сNULLс, но все равно получаю ту же ошибку!

ОБНОВИТЬ

Возможно, это проблема с массивом, передаваемым вDB::query(), Этот очень простой пример дал похожие ошибки:

$row = array('id', 123);
DB::query('INSERT IGNORE into table_2 VALUES (?, ?)', $row);

а также

$row = array('id' => 123);
DB::query('INSERT IGNORE into table_2 VALUES (?, ?)', $row);

ошибка

SQLSTATE[21S01]: Insert value list does not match column list: 
1136 Column count doesn't match value count at row 1

Ответы на вопрос(2)

Ваш ответ на вопрос