package main

import (
   "database/sql" //系统自带抽象包,光有它不能连数据库
   _ "github.com/go-sql-driver/mysql" //必须有个真实的能做mysql连接的包
   "fmt"
)

//插
func insertMysql(db sql.DB) {
   stmt, err := db.Prepare("INSERT wenda_user SET username=?, account=?, password=?")
   if err != nil {
      panic(err)
   }
   res, err := stmt.Exec("张三", "三哥", "123456")
   id, err := res.LastInsertId() //mysql中只有是自增主键的情况才能返回
   if err != nil {
      fmt.Println("插入出错!")
   }
   fmt.Println(id)
}

//更新
func updateMysql(db sql.DB) {
   stmt, err := db.Prepare("UPDATE wenda_user set username=? where id=?")
   if err != nil {
      panic(err)
   }
   res, err := stmt.Exec("嘟f嘟", 6)
   if err != nil {
      fmt.Println("更新出错!")
   }
   affectNum, err := res.RowsAffected() //affectNum影响的行数。如果将lisi还是修改为lisi,则返回0
   fmt.Println(affectNum)
}

//查
func selectMysql(db sql.DB) {
   rows, err := db.Query("SELECT * FROM wenda_admin")
   if err != nil {
      panic(err)
   }
   for rows.Next() {
      var id string
      var account string
      var password string
      var logintime string
      var loginip string
      var lock string
      err =rows.Scan(&id, &account, &password, &logintime, &loginip, &lock)
      fmt.Println(id, account, password, logintime, loginip, lock)
   }
}

//删
func delMysql(db sql.DB) {
   stmt, err := db.Prepare("DELETE FROM wenda_user WHERE id=?")
   if err != nil {
      panic(err)
   }
   res, err := stmt.Exec(13)
   if err != nil {
      fmt.Println("删除失败!")
   }
   fmt.Println(res.RowsAffected())

}

func main() {
   db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/yii2_wenda?charset=utf8")
   if err != nil {
      panic(err)
   }


   insertMysql(*db)
   updateMysql(*db)
   selectMysql(*db)
   delMysql(*db)

}