平时处理web请求还是API接口请求,都需要对数据做过滤,如数据类型转换,字符串删首尾空以及防止SQL注入。
最近负责的一个模块在某些情况下会导致业务处理失败。
进去代码看了之后一开始看不出来,经过数据模拟最终锁定问题。
现在场景如下,需要判断某个变量是否为数值。我们可以使用PHP内置函数 is_numeric,只要字符串都是由数字构成的就返回真。
如果由于没有删除首尾空,这个时候就会返回false。所以在代码编写的时候还是要在严谨一点。
// (必须是纯帐号) 避免加多空格导致解析失败
if (!is_numeric(trim($order['character']))){
return false;
}