| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- 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() {
- }
|