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 {
...
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· 后端思维之高并发处理方案
· 千万级大表的优化技巧
· 在 VS Code 中,一键安装 MCP Server!
· 10年+ .NET Coder 心语 ── 继承的思维:从思维模式到架构设计的深度解析
· 上周热点回顾(3.24-3.30)