connect.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package sql
  2. import (
  3. "database/sql"
  4. "errors"
  5. // _ "github.com/go-sql-driver/mysql"
  6. _ "github.com/go-sql-driver/mysql"
  7. )
  8. //SQL ...
  9. type SQL struct {
  10. db *sql.DB
  11. err error
  12. }
  13. // NewSQL ...
  14. func NewSQL(server, login, mdp, base string) *SQL {
  15. db, err := Connect(server, login, mdp, base)
  16. if err != nil {
  17. panic(err.Error())
  18. }
  19. s := new(SQL)
  20. s.db = db
  21. s.err = err
  22. return s
  23. }
  24. func Connect(server, login, mdp, base string) (*sql.DB, error) {
  25. db, err := sql.Open("mysql", login+":"+mdp+"@tcp("+server+")/"+base)
  26. return db, err
  27. }
  28. /* INSERT
  29. return nombre d'insert
  30. */
  31. func (s *SQL) Insert(table string, cols []string, values [][]string) error {
  32. if cols != nil {
  33. for _, v := range values {
  34. if len(v) != len(cols) {
  35. return errors.New("") // Il n'y a pas le meme nombre de cols dans une ou plusieurs ligne de values
  36. }
  37. }
  38. }
  39. flgA := 0
  40. flgB := 0
  41. lines := ""
  42. for _, value := range values {
  43. if flgB != 0 {
  44. lines += ", "
  45. }
  46. lines += "("
  47. for i := 0; i < len(value); i++ {
  48. if flgA != 0 {
  49. lines += ", "
  50. }
  51. if value[i] != "" {
  52. lines += "'" + value[i] + "'"
  53. } else {
  54. lines += "null"
  55. }
  56. flgA = 1
  57. }
  58. lines += ")"
  59. flgB = 1
  60. flgA = 0
  61. }
  62. insert, err := s.db.Query("INSERT INTO " + table + " VALUES " + lines + ";")
  63. if err != nil || insert.Err() != nil {
  64. return errors.New("") // Error syntax sql
  65. }
  66. defer insert.Close()
  67. return nil
  68. }
  69. func (s *SQL) Delete(table string, conds []string) error {
  70. if conds != nil {
  71. return errors.New("") // Aucune condition
  72. }
  73. delete, err := s.db.Query("DELETE FROM " + table + " WHERE " + lines)
  74. if err != nil || delete.Err() != nil {
  75. return errors.New("") // Error syntax
  76. }
  77. }
  78. func (s *SQL) Close() {
  79. }