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 == $conta 1
    else 
$query .= ", ";
    
$query .= " (NULL, '$chiave', $valore) ";