丧气满满且不想打开电脑 2019-08-06 11:21 采纳率: 0%
浏览 404

给静态页面添加数据库,要求用go实现增删改查,怎么做?

写好了一个静态页面但是不会添加数据库,求大神指导怎么添加。ajax已经看了,但是不是很懂。

  • 写回答

1条回答 默认 最新

  • 关注

    首先回答你的第一个问题:给静态页面添加数据库,
    静态页面添加数据库通常用法是ajax来实现,

    //头部需要用引入jquery.js 
    <script>
    $("button").click(function(){
       var data = {"val":"112233"}
        $.post("demo_test.html",data,function(data,status){
            alert("Data: " + data + "nStatus: " + status);
        });
    });
    </script>
    
    

    这样当用户点击按钮的时候,后端页面就可以收到 val=112233,就可以存入数据库了;

    第二个问题:要求用go实现增删改查

    我的mysql库: go get github.com/yihubaikai/gopublic/mysql

    package models

    import (
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/orm"
    )

    //初始化连接
    func M_init() {
    //beego.Debug("m_init")
    baseaddress := Get_config("baseaddress")
    baseport := Get_config("baseport")
    basename := Get_config("basename")
    sqluser := Get_config("sqluser")
    sqlpass := Get_config("sqlpass")

    orm.RegisterDataBase("default", "mysql", sqluser+":"+sqlpass+"@tcp("+baseaddress+":"+baseport+")/"+basename+"?charset=utf8", 200, 200)
    //orm.RegisterModel(new(User))
    

    }

    //切换数据库
    func M_Using(dbname string) {
    o := orm.NewOrm()
    o.Using(dbname)
    }

    //获取有返回值的sql语句,比如select, shwo database
    func Getrs(sqlcmd string) (err error, rs []orm.Params) {
    o := orm.NewOrm()
    _, err = o.Raw(sqlcmd).Values(&rs)
    return err, rs
    }

    //执行sql语句,比如: insert into, update ,deltete, create 等
    func Dosql(sqlcmd string) {
    o := orm.NewOrm()
    o.Raw(sqlcmd).Exec()
    }

    //检查数据库中的表是否存在
    //检查数据库中的表是否存在
    func Check_Tab_Exists(tabname string) bool {

    defer func() { // 必须要先声明defer,否则不能捕获到panic异常
        err := recover()
        if err != nil {
            beego.Debug(tabname, "查询异常,表", tabname, "不存在")
        }
    }()
    
    sqlcmd := "select * from `" + tabname + "` limit 0, 1"
    err1, rs := Getrs(sqlcmd)
    if err1 != nil {
        beego.Debug("查询失败 视为表", tabname, "不存在")
        return false //查询失败 视为表不存在
    }
    if len(rs) > 0 {
        beego.Debug("表", tabname, "存在")
        return true
    }
    beego.Debug(tabname, "表补存在")
    return false
    

    }

    //显示当前连接中所有的库取值字段:Database
    func ShowDatabases() (err error, rs []orm.Params) {
    //var rs []orm.Params
    err, rs = Getrs("show databases")
    beego.Debug("ShowDatabases 取值字段:Database", rs)
    /*if err != nil {
    beego.Debug(err)
    } else {
    for num, row := range rs {
    beego.Debug(num, row["Database"])
    }
    }*/
    return err, rs
    }

    //显示当前库下所有的数据表 取值字段:Tables_in_square
    func ShowTables(dbname string) (err error, rs []orm.Params) {
    M_Using(dbname)
    sqlcmd := "show tables;"
    err, rs = Getrs(sqlcmd)
    beego.Debug("ShowTables 取值字段:Tables_in_square", rs)
    return err, rs
    }

    //显示当前表下所有的字段 取值字段:Field
    //调用这个函数之前必须调用showtables防止未切换数据库
    func ShowField(tabname string) (err error, rs []orm.Params) {
    sqlcmd := "desc " + tabname + ";"
    err, rs = Getrs(sqlcmd)
    beego.Debug("ShowField 取值字段:Field", rs)
    return err, rs
    }

    func Get_config(key string) string {
    conf, err := config.NewConfig("ini", "conf/config.ini")
    if err != nil {
    beego.Debug("new config failed, err:", err)
    return ""
    }
    ret := conf.String("config::" + key)
    return ret
    }

    ----- 使用上面的库:
    增加:
    sqlcmd1 := "insert into table (order_no,money) values('" + order_no + "','" + money + "');"
    Dosql(sqlcmd1)

    删除:
    sqlcmd1 := "delete from table where order_no='112233';"
    Dosql(sqlcmd1)

    修改:
    sqlcmd1 := "update table set money=10000 where order_no='112233';"
    Dosql(sqlcmd1)

    ---------希望能帮助到你————---

    评论

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型