Quellcode durchsuchen

DELETE UPDATE INSERT TEST OK

Sylvrec vor 4 Jahren
Ursprung
Commit
00ecdb1363
2 geänderte Dateien mit 87 neuen und 25 gelöschten Zeilen
  1. 63 7
      mysqltojson/sql/connect.go
  2. 24 18
      mysqltojson/sql/sql_test.go

+ 63 - 7
mysqltojson/sql/connect.go

@@ -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() {

+ 24 - 18
mysqltojson/sql/sql_test.go

@@ -4,28 +4,34 @@ import "testing"
 
 // TestConnect ...
 func TestConnect(t *testing.T) {
-	db := NewSQL()
-	var err = db.connectDb("sylvrec.com:3306", "test", "test", "test")
-	if err != nil {
-		t.Errorf("Expected err=nil, %#v", err)
-		return
-	}
+	db := NewSQL("sylvrec.com:3306", "test", "test", "test")
 	db.Close()
 }
 
-func TestInsert(t *testing.T) {
-	db := NewSQL()
-	var err = db.connectDb("sylvrec.com:3306", "test", "test", "test")
-	if err != nil {
-		t.Errorf("Expected err=nil, %#v", err)
+func TestCRUD(t *testing.T) {
+	db := NewSQL("sylvrec.com:3306", "test", "test", "test")
+	var values [][]string
+	values = append(values, []string{"", "WuYu", "Kawai"})
+	errInsert := db.Insert("test", nil, values)
+	if errInsert != nil {
+		t.Errorf("Expected err=nil, %#v", errInsert)
+		return
+	}
+	var vals [][]string
+	var sets [][]string
+	sets = append(sets, []string{"nom", "YoYo"})
+	vals = append(vals, []string{"nom", "WuYu"})
+	vals = append(vals, []string{"prenom", "Kawai"})
+	errUpdate := db.UpdateAND("test", sets, vals)
+	if errUpdate != nil {
+		t.Errorf("Expected err=nil, %#v", errUpdate)
+		return
+	}
+	sets = append(sets, []string{"prenom", "Kawai"})
+	errDelete := db.DeleteAND("test", sets)
+	if errDelete != nil {
+		t.Errorf("Expected err=nil, %#v", errDelete)
 		return
 	}
-	var values [][]string
-	values = append(values, []string{"1", "john", "doe"})
-	db.insertDb("test", nil, values)
-	// if errs != nil {
-	// 	t.Errorf("Expected err=nil, %#v", err)
-	// 	return
-	// }
 	db.Close()
 }