另一个cnblogs博客 常用汇总

sql查询自然数判断

SELECT * FROM table WHERE id=$id

1、isset是为了你避免notice级别的警告,is_numeric是因为不加引号情况,$id必须是数值类型,不然sql查询会报错。

2、虽然id设定为主键自增的非0自然数(正整数),但是用小数,0,负数并不会报错,只会查不到数据,十六进制可以正常使用。

当然用 (int) $_GET['id']代替is_numeric也是可以的。

3、最后不能忘了查询数据为空的情况

总结,由于3托底,在数据库正常的情况,用is_numeric或int避免不带引号的错误,带了引号的话,没有is_numeric或int也可以接受。

if (isset($_GET['id']) && is_numeric($_GET['id'])) {
  $id = $_GET['id'];
  $data = fun("SELECT * FROM table WHERE id=$id");
  if ($data) {
    ...
  } else {
    ...
  }
} else { ... }

 

$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
$data = fun("SELECT * FROM table WHERE id=$id");
if ($data) {
  ...
} else {
  ...
}

 

posted on 2020-06-16 21:11  webkb  阅读(330)  评论(0编辑  收藏  举报