需要按用户提供的新值(名称和地址)更新数据库。查询中的错误是:
错误:从'char'到'const char *'的无效转换[-fpermissive] sqlite3_bind_text(res,2,* c2)
我的代码是:
const char *c1 = updatedName.c_str();
const char *c2 = updatedAdd.c_str();
char *sql = ("UPDATE RECORDS SET NAME = ? AND ADDRESS = ? WHERE ACCOUNT_No = ?");
rc = sqlite3_prepare_v2(db, sql, -1, &res, 0);
sqlite3_bind_text(res, 1, *c1);
sqlite3_bind_text(res, 2, *c2);
sqlite3_bind_int(res, 3, acc);
rc = sqlite3_step(res);
sqlite3_finalize(res);
答案 0 :(得分:0)
sqlite3_bind_text()
想要一个指向整个字符串的指针,而不仅仅是第一个字符。 (您需要了解C指针和字符串(字符数组)的工作原理。)
sqlite3_bind_text()
documentation告诉您使用五个参数:
sqlite3_bind_text(res, 1, updatedName.c_str(), -1, SQLITE_TRANSIENT);