go 实现操作mysql并且防止sql注入

在最近使用go语言的同学,大家有没有操作数据库的时候遇到过sql注入的问题,sql注入会把数据库搞崩,或者是把数据库的数据全部查出造成不必要的随时,今天小程同学就给大家带来一个go中防sql注入的最好例子,大家不要忘了点赞关注呦

go 复制代码
package main

import (
	"database/sql"
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"log"
)

func main() {
	//args := os.Args
	//pre_name := args[1]
	//
	mysqlDb := getMysqlConn()
	defer mysqlDb.Close()
	getProjectAll(mysqlDb, "3432")
}

func getMysqlConn() *sql.DB {
	mysqlConfig := "rich:rich@1009@tcp(47.95.149.89:13306)/oms_epg"
	mysqlDb, err := sql.Open("mysql", mysqlConfig)
	if err != nil {
		log.Fatal("连接mysql失败", err)
		return nil
	}
	return mysqlDb
}

func getProjectAll(mysqlDb *sql.DB, preFix string) {

	stmt, err := mysqlDb.Prepare("select pre_fix, show_name from partner where pre_fix=?")
	if err != nil {
		log.Fatal(err)
		return
	}
	defer stmt.Close()
	rows, err := stmt.Query("sd_ctcc_iptv")
	for rows.Next() {
		var pre_fix string
		var show_name string
		if err := rows.Scan(&pre_fix, &show_name); err != nil {
			log.Fatal(err)
		}
		fmt.Printf("Username: %s, Password: %s\n", pre_fix, show_name)
	}

}

type project struct {
	pre_fix   string
	show_name string
}
相关推荐
ZJU_统一阿萨姆9 小时前
【推理优化进阶】通信关键路径:NCCL、RDMA 与计算通信重叠
开发语言·人工智能·语言模型·架构·系统架构
圣殿骑士-Khtangc9 小时前
Go-TLS-SSL安全通信从证书管理到双向认证
golang
我不是疯子是傻子10 小时前
Qt 程序打包部署全攻略:从 windeployqt 到 Inno Setup 的静默安装与版本迭代实战
开发语言·qt
圣殿骑士-Khtangc10 小时前
Go可观测性三支柱Logs-Metrics-Traces集成实战
golang
城管不管11 小时前
重生——第十次面试之开源中国一面挂
java·linux·开发语言·算法·面试·职场和发展·开源
名字还没想好☜11 小时前
Go 的 database/sql 连接池实战:SetMaxOpenConns 怎么配、连接泄漏怎么查
数据库·sql·golang·go·数据库连接池
圣殿骑士-Khtangc11 小时前
Go-Docker多阶段构建与容器化最佳实践
golang
霸道流氓气质11 小时前
Java开发者AI编程常用MCP、Skills、Rules全景汇总
java·开发语言·ai编程
玛丽莲茼蒿11 小时前
Redis(六)—— Redis高级
数据库·redis·缓存
渣渣盟11 小时前
Flink 写入 Redis 实战:数据模型选型、连接池调优与常见坑
大数据·redis·flink