Mover una fila de una tabla a otra (la lista de valores de inserción no coincide con la lista de columnas)

Estoy utilizando el generador de consultas Fluent del marco PHP de Laravel para mover filas de una tabla a otra. Se está utilizando la DOP. Durante el uso de la consulta en brutoDB::query(), Me sale el error:

Error

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 (?, ?)

Consulta

// 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 de $ row

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

¿Qué está causando el error y cómo se puede arreglar? Intenté quitar los elementos conNULLS, pero todavía recibe el mismo error!

ACTUALIZAR

Este es posiblemente un problema con la matriz que se pasa aDB::query(). Estos ejemplos muy simples dieron errores similares:

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

y

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

Error

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta