$stmt->bind_param() tidak memeriksa variabel yang diberikan untuk tipe tertentu, itu hanya mengubahnya menjadi tipe yang ditentukan. Dan string Anda 'aaaaaaaa' diubah menjadi nilai int:0. Begitulah cara php melakukannya.
Pernyataan penyisipan basis data adalah tempat yang salah untuk diperiksa, jika variabel Anda mengandung nilai yang berguna/benar. Lakukan itu sebelumnya dan coba masukkan saja, jika validasi Anda berhasil.
Untuk melakukan validasi int, Anda bisa menggunakan fungsi php is_numeric() atau is_int().