最近数据库出了些很怪异的事情,插入一条记录的时候,时不时紧接着插入一条空白数据,其中有个score字段更是很奇怪,每次插入的空行数据时都是按100自增的。
排查半天没有找到原因。各位帮忙分析一下,可能的原因。先谢谢大家了
//直接注册,返回注册成功的用户对象,本函数假设手机已经通过验证码或其它验证
Bzuser AllBzuser::register_mobile_do(string mobile,string ip,unsigned int region)
{
//验证手机号是否已经存在和是否被激活
Bzuser bzuser=AllBzuser::getOnebyMobile(mobile);
if(bzuser.getId()!=0) { //表中已经有这个手机号
if(bzuser.getState()!=0) { //注册过的用户
return bzuser; //直接返回就好了
}
}
//对于新用户以及注册尚未验证的用户
bzuser.setRegister_time(second_clock::local_time());
bzuser.setRegister_ip(ip);
bzuser.setMobile(mobile);
bzuser.setLevel(AllLevel::get_first_level());
bzuser.setState(1);
bzuser.setRegion(region);
bzuser.save();
//触发注册成功事件
EventMan::on_user_register(bzuser);
return bzuser;
}
//作为新记录存入数据库
void Bzuser_base::insert()
{
SilkDBwrite& db=SingleSilkDBwrite::Instance();
db.insert("bzuser",all_value(),"");
long long unsigned int lid=db.insertID();
if(lid!=0) setId(lid);
}
//------------------------------------------------------------------
//更新数据库中的记录
void Bzuser_base::update()
{
SilkDBwrite& db=SingleSilkDBwrite::Instance();
db.update("bzuser",changed_value(),"id");
}
//------------------------------------------------------------------
//根据new_object判断是insert或update
void Bzuser_base::save()
{
if(new_object) insert();
else update();
}
insert 和 update 是调用前同事写的插入数据库的方法