|
@@ -1,15 +1,22 @@
|
|
|
package actions
|
|
|
|
|
|
import (
|
|
|
+ "database/sql"
|
|
|
+ _ "github.com/go-sql-driver/mysql"
|
|
|
+
|
|
|
+ "errors"
|
|
|
"fmt"
|
|
|
"reflect"
|
|
|
"strings"
|
|
|
|
|
|
"golang-fave/engine/wrapper"
|
|
|
+
|
|
|
+ utils "golang-fave/engine/wrapper/utils"
|
|
|
)
|
|
|
|
|
|
type Action struct {
|
|
|
wrapper *wrapper.Wrapper
|
|
|
+ db *sql.DB
|
|
|
}
|
|
|
|
|
|
func (this *Action) write(data string) {
|
|
@@ -31,8 +38,31 @@ func (this *Action) msg_error(msg string) {
|
|
|
this.msg_show("Error", msg)
|
|
|
}
|
|
|
|
|
|
+func (this *Action) use_database() error {
|
|
|
+ if this.db != nil {
|
|
|
+ return errors.New("already connected to database")
|
|
|
+ }
|
|
|
+ if !utils.IsMySqlConfigExists(this.wrapper.DirVHostHome) {
|
|
|
+ return errors.New("can't read database configuration file")
|
|
|
+ }
|
|
|
+ mc, err := utils.MySqlConfigRead(this.wrapper.DirVHostHome)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ this.db, err = sql.Open("mysql", mc.User+":"+mc.Password+"@tcp("+mc.Host+":"+mc.Port+")/"+mc.Name)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ err = this.db.Ping()
|
|
|
+ if err != nil {
|
|
|
+ this.db.Close()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
func New(wrapper *wrapper.Wrapper) *Action {
|
|
|
- return &Action{wrapper}
|
|
|
+ return &Action{wrapper, nil}
|
|
|
}
|
|
|
|
|
|
func (this *Action) Run() bool {
|