Uso Mysqli non avevo postato il codice completo perchè era lunghino, vedo di semplificarlo.
Inizialmente leggo un file csv con i dati e li inserisco in un array su cui faccio il ciclo riga per riga.
In teoria se la mia riga esite faccio un update, altrimenti faccio un insert (per semplificare faccio sempre un update)
SqlDebug($qwt, $par); è una funzione che data la mia query e i miei parametri mi restituisce la query che esegue mysql in modo da salvarla nel mi log.
Codice PHP:
foreach($array_csv as $numero_riga => $valori){
  try {
 
$idcliv $valori[0];
 
$codice $valori[1];
 
$ragione_sociale $valori[2];
 
$indirizzo $valori[3];
 
$cap $valori[4];
 
$localita $valori[5];
 
$provincia $valori[6];
 
$telefono $valori[7];
 
$mail $valori[8];
 
$cod_fisc $valori[9];
 
$p_iva $valori[10];
 
$codice_agente $valori[11];
 
$etichetta $valori[12];
 
$idpag $valori[13];
 
$pagamento $valori[14];
 
$ids $valori[15];
 
$qwt ="UPDATE clienti SET id=?,codice=?,ragione_sociale=?,indirizzo=?,cap=?,localita=?,provincia=?,telefono=?,mail=?,cod_fisc=?,p_iva=?,codice_agente=?,etichetta=?,idpag=?,pagamento=? WHERE idcliente=?";
 
$result $connessione->prepare($qwt);
 
$par = array($idcliv$codice$ragione_sociale,$indirizzo,$cap,$localita,$provincia,$telefono,$mail,$cod_fisc,$p_iva,$codice_agente,$etichetta,$idpag,$pagamento,$ids);
$result->bind_param('iisssssssssisisi'$par[0],$par[1],$par[2], $par[3], $par[4], $par[5],$par[6],$par[7],$par[8],$par[9],$par[10],$par[11],$par[12],$par[13],$par[14],$par[15]);
$result->execute();

$operazione SqlDebug($qwt$par);
$fp fopen("../log/clienti_ins.txt""a");
if(!
$fp) die ("Errore nella operaione con il file");
$data2 date('d')."-".date('m')."-".date('Y'). " " .date('H').":".date('i');
$chi $_SERVER['REMOTE_ADDR'];
$dispositivo $_SERVER['HTTP_USER_AGENT'];
fwrite($fp"\r\n".$data2." - " $chi ." - "$operazione" - " .$dispositivo);
fclose($fp);

}catch (
Exception $e) {
    echo 
'Caught exception: ',  $e->getMessage(), "\n";
}
 
 

Grazie mille