Пара вещей здесь не так.Сначала вы должны явно указать свои поля в $ sql:
$sql = 'insert into tablename (fileid,filename,d_uploaded) values ('.$ID.', \''.$targetFile.'\', '.$time.');';
Большинство полей ID не будут VARCHAR, они будут INT.Все VARCHAR являются текстовыми полями, а все INT числовыми.Вы не можете выйти из полей INT, но вам нужно выйти из VARCHAR.
Также не вставляйте пустые поля, чтобы получить поле с автоматическим приращением.Делая SQL так, как я описал выше, вы получаете возможность кодировать только те поля SQL, которые вы вставляете, а остальные поля таблицы будут вставлять значения по умолчанию.