infatti prima di inserire il secondo set di valori dovrebbe mettere la virgola cosa che non fa
la query dovrebbe essere:
insert into prova (id, nome, valore) values (NULL, 'Forza', 1) , (NULL, 'Destrezza', 1);
invece stranamente ti viene
insert into prova (id, nome, valore) values (NULL, 'Forza', 1) (NULL, 'Destrezza', 1);
vedi se così funziona, comunque è colpa della variabile $conta, che dovrebbe servire a mettere la virgola prima di ogni set di valori solo dal secondo set in poi.
Codice PHP:
$query = "insert into prova (id, nome, valore) values ";
$conta=0;
foreach ($_POST as $chiave=>$valore){
if ( $conta == 0 ) $conta = 1;
else $query .= ", ";
$query .= " (NULL, '$chiave', $valore) ";
}