例如,我有这种情况:
id value
1 data_1
2 20
3 data_3
4 15
5 data_4
6 data_6
和以下存储过程:
DELIMITER $$
CREATE PROCEDURE `test_2`.`test_procedure` (val int(9))
BEGIN
select * from `test` where `value` = val;
END
如果我这样调用程序
call test_procedure(20);
我有以下结果:
id value
2 20
到目前为止一切都很好。
但我无法理解的是,当我这样调用程序时:
call test_procedure("abc");
我有以下结果:
id value
1 data_1
3 data_3
5 data_4
6 data_6
这是 MySQL 数据库的正常行为吗?
如果我将变量“val”声明为整数,这不会阻止 MySQL 注入吗?
我希望有一个警告或一些东西告诉我输入值不是整数并且程序要停止,而不是显示表中不是数字的所有值。