Originariamente inviato da Grino
a colpo d'occhio direi che nel terzo codice che posti la riga

insertImg($nome_upload, $_POST['didascalia'], $_POST['articolo']);

dovrebbe essere

insertImg($nome_upload, $_POST['didascalia'][$i], $_POST['articolo']);

un errore era la, ci sono arrivato dopo.
l'altro errore era di sintassi del nome da passare al prepared statement nella funzione.
$art_id -> $art_nome

grazie!