插入数据
最近更新时间: 2024-10-17 17:10:00
package main
import (
"fmt"
"strings"
"time"
"github.com/jackc/pgx"
)
func main() {
var error_msg string
var sql string
var nickname string
//连接数据库
conn, err := db_connect()
if err != nil {
error_msg = "连接数据库失败,详情:" + err.Error()
write_log("Error", error_msg)
return
}
//程序运行结束时关闭连接
defer conn.Close()
write_log("Log", "连接数据库成功")
//插入数据
sql = "insert into public.tbase values('1','tbase'),('2','pgxz');"
_, err = conn.Exec(sql)
if err != nil {
error_msg = "插入数据失败,详情:" + err.Error()
write_log("Error", error_msg)
return
} else {
write_log("Log", "插入数据成功")
}
//绑定变量插入数据,不需要做防注入处理
sql = "insert into public.tbase values($1,$2),($1,$3);"
_, err = conn.Exec(sql, "3", "postgresql", "postgres")
if err != nil {
error_msg = "插入数据失败,详情:" + err.Error()
write_log("Error", error_msg)
return
} else {
write_log("Log", "插入数据成功")
}
//拼接sql语句插入数据,需要做防注入处理
nickname = "TBase is ' good!"
sql = "insert into public.tbase values('1','" + sql_data_encode(nickname) + "')"
_, err = conn.Exec(sql)
if err != nil {
error_msg = "插入数据失败,详情:" + err.Error()
write_log("Error", error_msg)
return
} else {
write_log("Log", "插入数据成功")
}
}
/*
功能描述:sql查询拼接字符串编码
参数说明:
str -- 要编码的字符串
返回值说明:
返回编码过的字符串
*/
func sql_data_encode(str string) string {
return strings.Replace(str, "'", "''", -1)
}
/*
功能描述:写入日志处理
参数说明:
log_level -- 日志级别,只能是是Error或Log
error_msg -- 日志内容
返回值说明:无
*/
func write_log(log_level string, error_msg string) {
//打印错误信息
fmt.Println("访问时间:", time.Now().Format("2006-01-02 15:04:05"))
fmt.Println("日志级别:", log_level)
fmt.Println("详细信息:", error_msg)
}
/*
功能描述:连接数据库
参数说明:无
返回值说明:
conn *pgx.Conn -- 连接信息
err error --错误信息
*/
func db_connect() (conn *pgx.Conn, err error) {
var config pgx.ConnConfig
config.Host = "127.0.0.1" //数据库主机host或ip
config.User = "tbase" //连接用户
config.Password = "pgsql" //用户密码
config.Database = "postgres" //连接数据库名
config.Port = 15432 //端口号
conn, err = pgx.Connect(config)
return conn, err
}
[root@VM_0_29_centos tbase]# go run insert.go
访问时间: 2018-04-03 21:05:51
日志级别: Log
详细信息: 连接数据库成功
访问时间: 2018-04-03 21:05:51
日志级别: Log
详细信息: 插入数据成功
访问时间: 2018-04-03 21:05:51
日志级别: Log
详细信息: 插入数据成功
访问时间: 2018-04-03 21:05:51
日志级别: Log
详细信息: 插入数据成功