Quando hai dubbi sui dati usa la funzione var_dump e stampati a video cosa c'e' in una var.
Cosi' hai la sicurezza.

Prendere codice prefatto porta sempre a questi casi.

il mio consiglio e' togliere tutto e iniziare con :

Codice PHP:

echo "<pre>" ;
var_dump($_FILES) ;
echo 
"<hr />" ;
var_dump($_POST) ;
echo 
"</pre>" 

Cosi' vedi cosa arriva a quello script e in che formato e'.
Poi posta il risultato che vediamo di sistemare il tutto.


Scusa in quell'affermazione sono stato poco chiaro.
Intendevo che la insert viene eseguita quando controlli la seconda immagine se la prima non ha errori.
Io opero in modo differente e separo lo strato di controlli da quello di esecuzione.
Vuol dire che
1- imposto delle var booleane o numeriche per tracciare errori.
2- eseguo i controlli e cambio i valori nelle var in base al risultato dei controlli
3- eseguo le funzioni / procedure /script se le var di controllo sono apposto oppure scelgo determinate strade in base ai conteggi

Come vedi in futuro puoi cambiare i controlli senza dover impazzire a cambiare il codice che dovresti eseguire nei vari casi. Molto piu' pulito e gestibile.