|
|
@@ -0,0 +1,90 @@
|
|
|
+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() {
|
|
|
+
|
|
|
+}
|