gpt4 book ai didi

c - SQLite 在 CPP 中从 ‘char’ 到 ‘const char*’ [-fpermissive] 的无效转换

转载 作者:行者123 更新时间:2023-11-30 16:48:36 26 4
gpt4 key购买 nike

需要通过用户提供的新值(名称和地址)更新数据库。查询错误是:

  1. 错误:从“char”到“const char*”的无效转换[-fpermissive] sqlite3_bind_text(res, 2, *c2)

  2. 错误:函数“int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int, void ()(void))”的参数太少 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);

最佳答案

sqlite3_bind_text() 想要一个指向整个字符串的指针,而不仅仅是第一个字符。 (您需要了解 C 指针和字符串(字符数组)如何工作。)

还有sqlite3_bind_text() documentation告诉您使用五个参数:

sqlite3_bind_text(res, 1, updatedName.c_str(), -1, SQLITE_TRANSIENT);

关于c - SQLite 在 CPP 中从 ‘char’ 到 ‘const char*’ [-fpermissive] 的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42891445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com