github.com/giovannyortegon/go@v0.0.0-20220115155912-8890063f5bdd/src/WebProfesional/5-GoMySql/db/databaseGO.go (about) 1 package db 2 3 import ( 4 "database/sql" 5 "fmt" 6 7 _ "github.com/go-sql-driver/mysql" 8 ) 9 10 //username:password@tcp(localhost:3306)/database 11 const url = "xxxxx:xxxxx@tcp(localhost:3306)/goweb_db" 12 13 var db *sql.DB 14 15 func Connect_DB() { 16 17 conn, err := sql.Open("mysql", url) 18 19 if err != nil { 20 panic(err) 21 } 22 23 fmt.Println("Conexion Exitosa") 24 25 db = conn 26 } 27 func Close_DB() { 28 db.Close() 29 } 30 31 func Ping_DB() { 32 33 if err := db.Ping(); err != nil { 34 panic(err) 35 } 36 } 37 38 func ExistsTable(tableName string) bool { 39 sql := fmt.Sprintf("SHOW TABLES LIKE '%s'", tableName) 40 rows, err := db.Query(sql) 41 42 if err != nil { 43 fmt.Println("Error:", err) 44 } 45 return rows.Next() 46 } 47 48 func CreateTable_DB(schema string, name string) { 49 if !ExistsTable(name) { 50 _, err := db.Exec(schema) 51 if err != nil { 52 fmt.Println(err) 53 } 54 } else { 55 fmt.Println("[!] La tabla ya Existe !!") 56 } 57 } 58 59 func TruncateTable(tableName string) { 60 sql := fmt.Sprintf("TRUNCATE %s", tableName) 61 Exec(sql) 62 } 63 64 func Exec(query string, args ...interface{}) (sql.Result, error) { 65 result, err := db.Exec(query, args...) 66 67 if err != nil { 68 fmt.Println(err) 69 } 70 71 return result, err 72 } 73 74 func Query(query string, args ...interface{}) (*sql.Rows, error) { 75 rows, err := db.Query(query, args...) 76 77 if err != nil { 78 fmt.Println(err) 79 } 80 81 return rows, err 82 }