1
將值插入到數據庫中後,整數值正確插入,但字符串值被一些垃圾值替換。 使用%s或%q作爲字符串的佔位符。將垃圾值插入SQLite數據庫
int sl_no1 = sl_no;
int ac_no1 = account_no;
string u_name = name;
string u_add = address;
int u_bal = bal;
cout<<sl_no1<<endl<<ac_no1<<endl<<u_name<<endl<<u_add<<endl<<u_bal;
/** Create SQL statement */
//sql = "INSERT INTO ACCOUNT (SL_NO,ACCOUNT_NO, NMAE, ADDRESS, BALANCE) VALUES (" << sl_no1 <<", '"<< ac_no1 <<",'" << u_name <<", '"<< u_add <<", '" << u_bal << "')";
sql = sqlite3_mprintf("INSERT INTO ACCOUNT VALUES('%d','%d','%q','%q','%d')", sl_no1,ac_no1,u_name, u_add, u_bal);
/** Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if(rc != SQLITE_OK)
{
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
else
{
fprintf(stdout, "Records created successfully\n");
}
請您解釋 – kulst
使用.c_str()後問題解決了。但是,gcc編譯器不會警告任何東西。 – kulst