当前位置: 首页 > article >正文

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

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

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
}


http://www.kler.cn/a/311980.html

相关文章:

  • 【webrtc】 RTP 中的 MID(Media Stream Identifier)
  • SpringBoot(七)使用mapper注解编写sql操作数据库
  • DHCP与DNS安全管理
  • 从0开始学PHP面向对象内容之(常用魔术方法续一)
  • 解决MySQL中整型字段条件判断禁用不生效的问题
  • 【设计模式】结构型模式(四):组合模式、享元模式
  • 从《中国数据库前世今生》看中国数据库技术的发展与挑战
  • C#使用实体类Entity Framework Core操作mysql入门:从数据库反向生成模型
  • 【AI】简单了解AIGC与ChatGPT
  • VUE项目运行npm run dev命令后,自动打开浏览器导航到主页
  • flink 批量写clickhouse
  • SQL 查询语句汇总
  • 金砖软件测试赛项之Jmeter如何录制脚本!
  • 算法训练——day18 两数之和三数之和
  • 力扣春招100题——队列
  • Acwing 堆
  • 【QT】基于HTTP协议的网络应用程序
  • docker构建java镜像,运行镜像出现日志 no main manifest attribute, in /xxx.jar
  • 大模型-模型架构-新型模型架构
  • 程序员常用开发软件集合
  • AirTest 基本操作范例和参数解释(一)
  • 第157天: 安全开发-Python 自动化挖掘项目SRC 目标FOFA 资产Web 爬虫解析库
  • 缓存穿透 问题(缓存空对象)
  • C++ 中std::promise和std::future基本使用
  • OpenCV基础入门30讲(Python)——第二讲 图像色彩转换
  • 卷积参数量计算公式