package sql import ( "database/sql" "errors" // _ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql" ) //SQL ... type SQL struct { db *sql.DB err error } // NewSQL ... func NewSQL(server, login, mdp, base string) *SQL { db, err := Connect(server, login, mdp, base) if err != nil { panic(err.Error()) } s := new(SQL) s.db = db s.err = err return s } func Connect(server, login, mdp, base string) (*sql.DB, error) { db, err := sql.Open("mysql", login+":"+mdp+"@tcp("+server+")/"+base) return db, err } /* INSERT return nombre d'insert */ func (s *SQL) Insert(table string, cols []string, values [][]string) error { if cols != nil { for _, v := range values { if len(v) != len(cols) { return errors.New("") // Il n'y a pas le meme nombre de cols dans une ou plusieurs ligne de values } } } flgA := 0 flgB := 0 lines := "" for _, value := range values { if flgB != 0 { lines += ", " } lines += "(" for i := 0; i < len(value); i++ { if flgA != 0 { lines += ", " } if value[i] != "" { lines += "'" + value[i] + "'" } else { lines += "null" } flgA = 1 } lines += ")" flgB = 1 flgA = 0 } insert, err := s.db.Query("INSERT INTO " + table + " VALUES " + lines + ";") if err != nil || insert.Err() != nil { return errors.New("") // Error syntax sql } defer insert.Close() return nil } func (s *SQL) Delete(table string, conds []string) error { if conds != nil { return errors.New("") // Aucune condition } delete, err := s.db.Query("DELETE FROM " + table + " WHERE " + lines) if err != nil || delete.Err() != nil { return errors.New("") // Error syntax } } func (s *SQL) Close() { }