package cmd import ( "bufio" "database/sql" "fmt" "os" "strings" "xg_once_query/dbBase" ) func view(db *sql.DB) { // 创建一个新的读取器 reader := bufio.NewReader(os.Stdin) for { fmt.Print("SQL> ") input, _ := reader.ReadString(';') input = strings.TrimLeft(input, " ") fmt.Printf("SQL =%s, end \n ", input) firstSpaceIndex := strings.Index(input, " ") if firstSpaceIndex != -1 { firstWord := input[:firstSpaceIndex] if strings.HasPrefix(strings.ToLower(firstWord), "select") { dbBase.DbQuery(db, input) } else { dbBase.DbExec(db, input) } } } // go io.Copy(os.Stdout, waiter.Reader) // go io.Copy(os.Stderr, waiter.Reader) // // "golang.org/x/crypto/ssh/terminal" // //此处是关键,需要将标准输入转成标准终端输入 // fd := os.Stdin.Fd() // if terminal.IsTerminal(int(fd)) { // oldState, err := terminal.MakeRaw(int(fd)) // if err != nil { // zap.S().Fatalln(err) // } // defer terminal.Restore(int(fd), oldState) // } // go io.Copy(waiter.Conn, os.Stdin) // if err != nil { // panic(err) // } }