La programmazione e' un processo rigoroso, quindi andare a caso non porta a nessun risultato. Una buona cosa sarebbe leggere con attenzione la pagina di manuale relativa a una funzione, specialmente se questa da' errore (un errore peraltro piuttosto chiaro in questo caso).

Cito da: http://php.net/manual/en/mysqli-stmt.bind-param.php

Parameters

types

A string that contains one or more characters which specify the types for the corresponding bind variables:

i corresponding variable has type integer
d corresponding variable has type double
s corresponding variable has type string
b corresponding variable is a blob and will be sent in packets

var1

The number of variables and length of string types must match the parameters in the statement.

Gli esempi riportati sotto sono anche molto chiari.