$stmt->bind_param() nekontroluje dané proměnné na určitý typ, pouze je převádí na zadaný typ. A váš řetězec 'aaaaaaa' se převede na int-value:0. Tak to dělá php.
Příkaz vložení databáze je nesprávným místem ke kontrole, zda vaše proměnné obsahují užitečné/správné hodnoty. Udělejte to dříve a zkuste je vložit pouze tehdy, pokud vaše ověření funguje.
Chcete-li provést ověření pro int, můžete použít funkci php is_numeric() nebo is_int().