前端数据(写入/读取)后端数据库
前端数据(写入/读取)后端数据库
·
前端数据(写入/读取)后端数据库
一、前端数据写入后端数据库
1.前端数据通过from表单去提交
<form action="http://<% serverIp(); %>/action/sysInfo" method="get">
<input type=text class=inputText name=BaseStationName maxlength=254 size=32 value="+sysdata[5].value+">
2.后端通过QT调用websGetVar函数获取from表单中对应name的input数据
BaseStationNameey = websGetVar(wp,"BaseStationName", NULL);
LocaInfo = websGetVar(wp, "LocaInfo", NULL);
RebootTime = websGetVar(wp, "RebootTime", NULL);
DeviceTime = websGetVar(wp, "DeviceTime", NULL);
3.将获取到的数据写入到数据库里
写的比较简单,没有用INSERT INTO
而是用SQL里的updata
去实现数据的更新。updata优点就是前期只要把数据表的内容固定好,后期就只需要更新即可,前期麻烦(数据表小点还能接受,太大就麻烦了),后期省事,但缺点就是这样把东西写的死,后期难维护,更改起来费劲。如果用INSERT INTO虽然易维护,但每次插入都很麻烦,且数据在表中的位置经常发生变化,后面转化json读取困难。这里考虑做系统配置信息,数据量小,用updata做比较合适
bool DataBase::sysInfoDB(QString id, QString value)
{
QString tabNmae="sys_param";
QString redis_key = "";
QSqlQuery query(DataBase::db);
//根据id所在位置插入数据
QString str="UPDATE sys_param SET 'value'= '"+value+"' WHERE id = '"+id+"';";
FSU_Out<<str;
query.prepare(str);
if(!query.exec())
{
FSU_Out<<"Error: Fail to UPDATE. " << query.lastError();
return false;
}
query.finish();
return true;
}
二、前端读出后端数据库数据
1.直接用select把整个表的数据查出来,就三个字段,把表中数据都转化为json
int DataBase:: getSysInfo(QJsonArray &Sysinfolist,QString &err)
{
QSqlQuery sql_query(DataBase::db);
int ret = FSU_ERR_NONE;
sql_query.exec("select * from sys_param");
if(!sql_query.exec())
{
ret = FSU_ERR_QUERY_DB_ERROR;
err = QString(sql_query.lastError().text());
FSU_Err<<err;
return ret;
}
while(sql_query.next())
{
QJsonObject jsonSys;
jsonSys["id"] = sql_query.value(0).toDouble();
jsonSys["key"] = sql_query.value(1).toString();
jsonSys["value"] = sql_query.value(2).toString();
Sysinfolist.append(jsonSys);
}
err = "成功";
return FSU_ERR_NONE;
}
2.完善json,写成模板函数
static int aspSysInfo(int jid, Webs *wp, int argc, char **argv)
{
QJsonObject json_ret;
QString result="",err="";
QJsonArray Sysinfolist;
int ret = 0;
if(db){
ret = db->getSysInfo(Sysinfolist,err);
if(ret == FSU_ERR_NONE){
json_ret["msg"] = QJsonValue(Sysinfolist);
}
result = err;
} else {
result = "程序逻辑错误db为空";
ret = FSU_ERR_PROGRAM_ABNORMAL;
}
json_ret["code"] = QJsonValue(ret);
json_ret["result"] = QJsonValue(result);
QJsonDocument doc;
doc.setObject(json_ret);
result = QString::fromUtf8(doc.toJson(QJsonDocument::Compact).constData());
std::string str = result.toStdString();
websWrite(wp,"%s",str.c_str());
return 0;
}
json格式:
3.前端调用模板函数获取数据
var jsonsys= <% aspSysInfo();%>
var sysdata=jsonsys.msg;
document.write("<table width='78%' border='1' cellpadding='0' style='border-collapse: collapse' bordercolor='#000000'>");
document.write("<tr>");
document.write("<td width='23%' nowrap class=tablediv1>厂家信息</td>");
document.write("<td width='77%' class=tablediv2_b>");
document.write(sysdata[9].value);
document.write("</td>");
document.write("</tr>");
更多推荐
已为社区贡献1条内容
所有评论(0)