sqlite 遇到的问题
#define UPDATE_PROPINFO_SQL "UPDATE "USER_PROP_TABLE" SET " PLAYER_PROPS" = '%s' WHERE id = %d;"
#define DEFAULT_PLAYER_ID 1
下面这个方法一直报语法错误,让人很抓狂。
int Player::updatePropInfo()
{
char* sql = sqlite3_mprintf(UPDATE_PROPINFO_SQL,getPropsTimeStr().c_str(),DEFAULT_PLAYER_ID);
string retStr = sql;
sqlite3_free(sql);
return GSQLITE3->exec(sql, retStr);
}
string Player::getPropsTimeStr()
{
string propsTimeStr = "";
for (int i = 0; i < m_propsTimes.size() ;i++ )
{
char temp[64] = {0};
sprintf(temp,"%d",m_propsTimes[i]);
propsTimeStr.append(temp);
if (i < (m_propsTimes.size() - 1))
{
propsTimeStr.append(" ,"); //TIP :这个空格不能省
}
}
propsTimeStr.append("");
return propsTimeStr;
}
vector<int> m_propsTimes; //一个道具堆叠数目的数组
最后发现是在上边的propsTimeStr.append(" ,");这句中 逗号前面的空格没有写,空格坑死人。