Christian Jaeger wrote:
The problem arises in practical use when you expect a user input to be a
number, do some == comparison first, and then use the same variable as
input for execute. Current workarounds include comparing numbers stringwise
instead ("5" eq $var) or checking user input myself being a number. (If you
don't, you risk at least your application to die on string input and hence
in case of fastcgi being an easy target for denial of service attacks.)
The simplest way of conversion is using
int($var)
If you want to detect wrong input: Enable warnings and use the
$SIG{__WARN__} handler.
My question is also if there are reasons fpr DBD::mysql to differentiate
between numbers and strings. As far I have seen, mysql doesn't bother at
all about numbers being quoted or not, so it would probably be safe just to
quote any input.
The reason is portability to mSQL.
Bye,
Jochen