知识卡片
预处理隔离数据
内容
SQL 预处理把语句结构和参数数据分开发送,既减少重复解析,也降低注入风险。它的本质不是“写法更高级”,而是让数据库把代码和数据按不同协议处理。
参考来源
- 位置:《Go语言高级开发与实战》第3章《Go Web编程》(源文件:_epub-src/GoYu Yan Gao Ji Kai Fa Yu Shi Zhan_split_028.html)
- 结论依据:原文列出预处理减少分析时间、减少带宽、参数用不同协议发送以保证合法性,因此支撑隔离数据的结论。
- 原始内容:果返回给客户端。 预处理优点如下。 1)预处理语句大大减少了分析时间,只做了一次查询(虽然语句多次执行)。 2)绑定参数减少了服务器带宽,只需发送查询的参数,而不是整个语句。 3)预处理语句针对SQL注入是非常有用的,因为参数值发送后使用不同的协议,保证了数据的合法性。 Go语言预处理很简单,只需要Prepare()方法即可实现,示例如下。 (3)单行查询 Go语言单行查询可以通过QueryRow()方法