É possível guardar imagens no MySQL a partir do tipo BLOB que vai ter essas variações:
- Tinyblob; (8 bits)
- Blob; (16 bits)
- Mediumblob; (24 bits)
- Longblob. (32 bits)
É importante dizer que esse modo de guardar imagens não é o mais comum, é mais provável que você veja no mercado um sistema de diretórios, onde os arquivos (imagens, vídeos, pdfs) são salvos em pastas. Serviços em nuvem como o AWS S3 ou o Google Cloud Storage funcionam nessa ideia.
Um ponto negativo significante de guardar imagens no banco de dados é a sobrecarga muito grande de busca no banco de dados.
Para salvar tanto no banco de dados como em pastas, é preciso ter um meio de capturar essa imagem/arquivo, é aí que entra o html e php que você citou.
A imagem é capturada pelo html (front end), que manda para o php (back end), que então decide o que fazer com essa imagem: guardar no banco de dados ou em um sistema de pastas.
Espero que tenha uma visualização melhor agora.