A ver, se nota que usas $_POST['banner'] para leer la imagen pero ese es tu error.
Los archivos que subas siempre vendrán por $_FILES, si en la rutina anterior ya lo hiciste bien, ¿por qué lo haces mal en la otra parte?
Por lo que se entiende creo que deberías usar $add pues es la variable que contiene la ruta del archivo después de usar move_uploaded_file() finalmente.