ls 4 years ago
parent
commit
cc27f25c6d
3 changed files with 50 additions and 2 deletions
  1. 15 0
      db/db.go
  2. 33 2
      error.go
  3. 2 0
      go.sum

+ 15 - 0
db/db.go

@@ -260,6 +260,21 @@ func (d *DB) Update(query string, args interface{}) (RowsAffected int64, err err
 	return
 }
 
+// Exec exec
+func (d *DB) Exec(query string, args ...interface{}) (LastInsertId, RowsAffected int64, err error) {
+	err = d.Connect()
+	if err != nil {
+		return
+	}
+	defer d.Close()
+	var rs sql.Result
+	if rs, err = d.conn.Exec(query, args); err == nil {
+		LastInsertId, _ = rs.LastInsertId()
+		RowsAffected, _ = rs.RowsAffected()
+	}
+	return
+}
+
 // Limit MySQL limit
 func (d *DB) Limit(page, pagesize int) string {
 	// MySQL limit 0, size

+ 33 - 2
error.go

@@ -5,7 +5,38 @@ import (
 	"errors"
 )
 
+// Error error
+type Error struct {
+	c int
+	s string
+}
+
+// NewError new
+func NewError(code int, text string) *Error {
+	return &Error{c: code, s: text}
+}
+
+// Code err code
+func (e *Error) Code() int {
+	return e.c
+}
+
+// Error err to string
+func (e *Error) Error() string {
+	return e.s
+}
+
+// Unwrap return error
+func (e *Error) Unwrap() error {
+	return errors.New(e.s)
+}
+
+// Is reports whether any error in err's chain matches target.
+func (e *Error) Is(err error) bool {
+	return errors.Is(errors.New(e.s), err)
+}
+
 // ErrSQLNoRows SQL
-func ErrSQLNoRows(err error) bool {
-	return errors.Is(err, sql.ErrNoRows)
+func ErrSQLNoRows(e error) bool {
+	return errors.Is(e, sql.ErrNoRows)
 }

+ 2 - 0
go.sum

@@ -9,6 +9,7 @@ github.com/go-sql-driver/mysql v1.4.0 h1:7LxgVwFb2hIQtMm87NdgAVfXjnt4OePseqT1tKx
 github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
 github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA=
 github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
+github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
 github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
 github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=
 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -16,6 +17,7 @@ github.com/jmoiron/sqlx v1.2.0 h1:41Ip0zITnmWNR/vHV+S4m+VoUivnWY5E4OJfLZjCJMA=
 github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=
 github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
 github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+github.com/lib/pq v1.3.0 h1:/qkRGz8zljWiDcFvgpwUpwIAPu3r07TDvs3Rws+o/pU=
 github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=