or download this
If any arguments are given, then C<execute> will effectively call
L</bind_param> for each value before executing the statement. Values
...
the driver can determine the correct type (which is rare), or unless
C<bind_param> (or C<bind_param_inout>) has already been used to
specify the type.