a parte che sarebbe meglio una riscrittura (facendo un'unica query), se vuoi capire il problema stampa il valore delle variabili (tutte, inclusa quella di ciclo e la query) dopo la definizione di $query per vedere come avviene l'esecuzione, cmq farei almeno:

Codice PHP:
$num count($array1); // mi dici sono tutti e tre uguali, tanto...
$query"INSERT INTO tabella (Campo1,Campo2,Campo3) VALUES ";
for (
$k=0$k<$num$k++) {      
    
$query .= '('.$array1[$k].','.$array2[$k].','.$array3[$k]'),';
};
$query substr($query0, -1); // elimino l'ultima virgola in eccesso
// ...poi esegui una query... 
...da riverificare, cmq (aggiungi un "print $query" in coda, p.es.)