|
|
@@ -3,6 +3,7 @@ package sql
|
|
|
import (
|
|
|
"database/sql"
|
|
|
"errors"
|
|
|
+ "strings"
|
|
|
|
|
|
// _ "github.com/go-sql-driver/mysql"
|
|
|
_ "github.com/go-sql-driver/mysql"
|
|
|
@@ -65,24 +66,79 @@ func (s *SQL) Insert(table string, cols []string, values [][]string) error {
|
|
|
flgB = 1
|
|
|
flgA = 0
|
|
|
}
|
|
|
- insert, err := s.db.Query("INSERT INTO " + table + " VALUES " + lines + ";")
|
|
|
+ sql := "INSERT INTO " + table + " VALUES " + lines + ";"
|
|
|
+ insert, err := s.db.Query(sql)
|
|
|
if err != nil || insert.Err() != nil {
|
|
|
- return errors.New("") // Error syntax sql
|
|
|
+ return errors.New("error syntax : " + sql) // Error syntax sql
|
|
|
}
|
|
|
defer insert.Close()
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func (s *SQL) Delete(table string, conds []string) error {
|
|
|
- if conds != nil {
|
|
|
+func (s *SQL) DeleteAND(table string, wheres [][]string) error {
|
|
|
+ if wheres == nil {
|
|
|
return errors.New("") // Aucune condition
|
|
|
}
|
|
|
-
|
|
|
- delete, err := s.db.Query("DELETE FROM " + table + " WHERE " + lines)
|
|
|
+ lines := ""
|
|
|
+ flag := 0
|
|
|
+ for _, where := range wheres {
|
|
|
+ if flag != 0 {
|
|
|
+ lines += " AND "
|
|
|
+ }
|
|
|
+ lines += where[0] + " = '" + where[1] + "'"
|
|
|
+ flag = 1
|
|
|
+ }
|
|
|
+ sql := "DELETE FROM " + table + " WHERE " + lines + ";"
|
|
|
+ delete, err := s.db.Query(sql)
|
|
|
if err != nil || delete.Err() != nil {
|
|
|
- return errors.New("") // Error syntax
|
|
|
+ return errors.New("error syntax : " + sql) // Error syntax
|
|
|
}
|
|
|
+ defer delete.Close()
|
|
|
+ return nil
|
|
|
+}
|
|
|
|
|
|
+func (s *SQL) UpdateAND(table string, sets [][]string, wheres [][]string) error {
|
|
|
+ if wheres == nil {
|
|
|
+ return errors.New("") // Aucune condition
|
|
|
+ }
|
|
|
+ conds := ""
|
|
|
+ flag := 0
|
|
|
+ for _, where := range wheres {
|
|
|
+ if flag != 0 {
|
|
|
+ conds += " AND "
|
|
|
+ }
|
|
|
+ conds += where[0] + " = '" + where[1] + "'"
|
|
|
+ flag = 1
|
|
|
+ }
|
|
|
+ vls := ""
|
|
|
+ flagA := 0
|
|
|
+ for _, set := range sets {
|
|
|
+ if flagA != 0 {
|
|
|
+ vls += ", "
|
|
|
+ }
|
|
|
+ vls += set[0] + " = '" + set[1] + "'"
|
|
|
+ flagA = 1
|
|
|
+ }
|
|
|
+ sql := "UPDATE " + table + " SET " + vls + " WHERE " + conds + ";"
|
|
|
+ update, err := s.db.Query(sql)
|
|
|
+ if err != nil || update.Err() != nil {
|
|
|
+ return errors.New("error syntax : " + sql) // Error syntax
|
|
|
+ }
|
|
|
+ defer update.Close()
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
+func (s *SQL) Select(query string) error {
|
|
|
+ if (query == "") || (!strings.Contains(query, "SELECT")) ||
|
|
|
+ (strings.Count(query, ";") != 1 && strings.Index(query, ";")+1 != len(query)) {
|
|
|
+ return errors.New("") // query format incorrect
|
|
|
+ }
|
|
|
+ slct, err := s.db.Query(query)
|
|
|
+ if err != nil || slct.Err() != nil {
|
|
|
+ return errors.New("") // retour select incorrect
|
|
|
+ }
|
|
|
+ //
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
func (s *SQL) Close() {
|