|
@@ -15,7 +15,12 @@ type SQL struct {
|
|
|
err error
|
|
err error
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// NewSQL ...
|
|
|
|
|
|
|
+/* NewSQL
|
|
|
|
|
+@parameter server string (ex: myserver.com:3306)
|
|
|
|
|
+@parameter login string
|
|
|
|
|
+@parameter mdp string
|
|
|
|
|
+@parameter base string
|
|
|
|
|
+*/
|
|
|
func NewMySQL(server, login, mdp, base string) *SQL {
|
|
func NewMySQL(server, login, mdp, base string) *SQL {
|
|
|
db, err := Connect(server, login, mdp, base)
|
|
db, err := Connect(server, login, mdp, base)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -27,26 +32,31 @@ func NewMySQL(server, login, mdp, base string) *SQL {
|
|
|
return s
|
|
return s
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// Connect (Use NewMySQL for the connection)
|
|
|
func Connect(server, login, mdp, base string) (*sql.DB, error) {
|
|
func Connect(server, login, mdp, base string) (*sql.DB, error) {
|
|
|
db, err := sql.Open("mysql", login+":"+mdp+"@tcp("+server+")/"+base)
|
|
db, err := sql.Open("mysql", login+":"+mdp+"@tcp("+server+")/"+base)
|
|
|
return db, err
|
|
return db, err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-/* INSERT
|
|
|
|
|
- */
|
|
|
|
|
|
|
+/* Insert
|
|
|
|
|
+@parameter table string
|
|
|
|
|
+@parameter column []string (optional is nil)
|
|
|
|
|
+@parameter values []string
|
|
|
|
|
+@return error
|
|
|
|
|
+*/
|
|
|
func (s *SQL) Insert(table string, columns []string, values [][]string) error {
|
|
func (s *SQL) Insert(table string, columns []string, values [][]string) error {
|
|
|
if len(table) <= 0 || values == nil {
|
|
if len(table) <= 0 || values == nil {
|
|
|
- return errors.New("") // parametre incorrect
|
|
|
|
|
|
|
+ return errors.New("Incorrect parameters.")
|
|
|
}
|
|
}
|
|
|
if columns != nil {
|
|
if columns != nil {
|
|
|
for _, v := range values {
|
|
for _, v := range values {
|
|
|
if len(v) != len(columns) {
|
|
if len(v) != len(columns) {
|
|
|
- return errors.New("") // Il n'y a pas le meme nombre de colonnes dans une ou plusieurs ligne de values
|
|
|
|
|
|
|
+ return errors.New("It does not have the number of columns and values.")
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
if values == nil {
|
|
if values == nil {
|
|
|
- return errors.New("") // no values
|
|
|
|
|
|
|
+ return errors.New("Values is null.")
|
|
|
}
|
|
}
|
|
|
cols := "("
|
|
cols := "("
|
|
|
if columns != nil {
|
|
if columns != nil {
|
|
@@ -84,15 +94,20 @@ func (s *SQL) Insert(table string, columns []string, values [][]string) error {
|
|
|
}
|
|
}
|
|
|
insert, err := s.db.Query(sql)
|
|
insert, err := s.db.Query(sql)
|
|
|
if err != nil || insert.Err() != nil {
|
|
if err != nil || insert.Err() != nil {
|
|
|
- return errors.New("error syntax : " + sql) // Error syntax sql
|
|
|
|
|
|
|
+ return errors.New("error syntax : " + sql)
|
|
|
}
|
|
}
|
|
|
defer insert.Close()
|
|
defer insert.Close()
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/* DeleteAND
|
|
|
|
|
+@parameter table string
|
|
|
|
|
+@parameter wheres [][]string (Each line is combined with AND)
|
|
|
|
|
+@return error
|
|
|
|
|
+*/
|
|
|
func (s *SQL) DeleteAND(table string, wheres [][]string) error {
|
|
func (s *SQL) DeleteAND(table string, wheres [][]string) error {
|
|
|
if len(table) <= 0 || wheres == nil {
|
|
if len(table) <= 0 || wheres == nil {
|
|
|
- return errors.New("") // parametre incorrect
|
|
|
|
|
|
|
+ return errors.New("Incorrect parameter")
|
|
|
}
|
|
}
|
|
|
lines := ""
|
|
lines := ""
|
|
|
flag := 0
|
|
flag := 0
|
|
@@ -106,15 +121,21 @@ func (s *SQL) DeleteAND(table string, wheres [][]string) error {
|
|
|
sql := "DELETE FROM " + table + " WHERE " + lines + ";"
|
|
sql := "DELETE FROM " + table + " WHERE " + lines + ";"
|
|
|
delete, err := s.db.Query(sql)
|
|
delete, err := s.db.Query(sql)
|
|
|
if err != nil || delete.Err() != nil {
|
|
if err != nil || delete.Err() != nil {
|
|
|
- return errors.New("error syntax : " + sql) // Error syntax
|
|
|
|
|
|
|
+ return errors.New("error syntax : " + sql)
|
|
|
}
|
|
}
|
|
|
defer delete.Close()
|
|
defer delete.Close()
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/* UpdateAND
|
|
|
|
|
+@parameter table string
|
|
|
|
|
+@parameter sets [][]string
|
|
|
|
|
+@parameter wheres [][]string (Each line is combined with AND)
|
|
|
|
|
+@return error
|
|
|
|
|
+*/
|
|
|
func (s *SQL) UpdateAND(table string, sets [][]string, wheres [][]string) error {
|
|
func (s *SQL) UpdateAND(table string, sets [][]string, wheres [][]string) error {
|
|
|
if len(table) <= 0 || sets == nil || wheres == nil {
|
|
if len(table) <= 0 || sets == nil || wheres == nil {
|
|
|
- return errors.New("") //parametre incorrect
|
|
|
|
|
|
|
+ return errors.New("parameter incorrect")
|
|
|
}
|
|
}
|
|
|
conds := ""
|
|
conds := ""
|
|
|
flag := 0
|
|
flag := 0
|
|
@@ -137,19 +158,21 @@ func (s *SQL) UpdateAND(table string, sets [][]string, wheres [][]string) error
|
|
|
sql := "UPDATE " + table + " SET " + vls + " WHERE " + conds + ";"
|
|
sql := "UPDATE " + table + " SET " + vls + " WHERE " + conds + ";"
|
|
|
update, err := s.db.Query(sql)
|
|
update, err := s.db.Query(sql)
|
|
|
if err != nil || update.Err() != nil {
|
|
if err != nil || update.Err() != nil {
|
|
|
- return errors.New("error syntax : " + sql) // Error syntax
|
|
|
|
|
|
|
+ return errors.New("error syntax : " + sql)
|
|
|
}
|
|
}
|
|
|
defer update.Close()
|
|
defer update.Close()
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
-Select
|
|
|
|
|
|
|
+SelectAND
|
|
|
|
|
+@parameter table string
|
|
|
|
|
+@parameter colvals [][]string (Each line is combined with AND)
|
|
|
@return [column][row]string, error
|
|
@return [column][row]string, error
|
|
|
*/
|
|
*/
|
|
|
func (s *SQL) SelectAND(table string, colvals [][]string) ([][]string, error) {
|
|
func (s *SQL) SelectAND(table string, colvals [][]string) ([][]string, error) {
|
|
|
if len(table) <= 0 {
|
|
if len(table) <= 0 {
|
|
|
- return nil, errors.New("") // parameter incorrect
|
|
|
|
|
|
|
+ return nil, errors.New("parameter incorrect")
|
|
|
}
|
|
}
|
|
|
var rsltRow [][]string
|
|
var rsltRow [][]string
|
|
|
var requete string = "SELECT * FROM " + table
|
|
var requete string = "SELECT * FROM " + table
|
|
@@ -177,7 +200,7 @@ func (s *SQL) SelectAND(table string, colvals [][]string) ([][]string, error) {
|
|
|
for rows.Next() {
|
|
for rows.Next() {
|
|
|
err := rows.Scan(&bytes)
|
|
err := rows.Scan(&bytes)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- panic(errors.New("You panic for nothing!!!"))
|
|
|
|
|
|
|
+ panic(err.Error())
|
|
|
}
|
|
}
|
|
|
rsltCol = append(rsltCol, string(bytes[:]))
|
|
rsltCol = append(rsltCol, string(bytes[:]))
|
|
|
}
|
|
}
|
|
@@ -187,6 +210,9 @@ func (s *SQL) SelectAND(table string, colvals [][]string) ([][]string, error) {
|
|
|
return rsltRow, nil
|
|
return rsltRow, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/*
|
|
|
|
|
+Close
|
|
|
|
|
+*/
|
|
|
func (s *SQL) Close() {
|
|
func (s *SQL) Close() {
|
|
|
defer s.db.Close()
|
|
defer s.db.Close()
|
|
|
}
|
|
}
|