gpt4 book ai didi

c - SQLite3 : update not working correctly?

转载 作者:太空宇宙 更新时间:2023-11-04 08:40:44 24 4
gpt4 key购买 nike

我正在尝试使用以下代码从我的 C 程序更新 SQLite 数据库中的 4 列:

const char* update = {
"UPDATE mytable SET "
"mycolumn1"
"=?,"
"mycolumn2"
"=?,"
"mycolumn3"
"=?,"
"mycolumn4"
"=? WHERE(id=1);"
};
extern sqlite3 *sqdb;
sqlite3_stmt *stmt;
int val[2]={1, 2};
sqlite3_prepare_v2(sqdb, update, -1, &stmt, 0);
sqlite3_bind_int(stmt, val[0], 1);
sqlite3_bind_text16(stmt, 2, L"example1", -1, SQLITE_STATIC);
sqlite3_bind_text16(stmt, 3, L"example2", -1, SQLITE_STATIC);
sqlite3_bind_int(stmt, val[1], 4);
sqlite3_step(stmt);
sqlite3_finalize(stmt);

更新成功,但是只有 2 个文本列(第 2 列和第 3 列)得到更新,其他 2 个 int 列没有更新,它们包含一个空值,我在导出后使用 SQLite 命令 shell 进行了测试shell 使用的数据库。

怎么了?以及如何解决这个问题?

最佳答案

你的参数顺序错误:

sqlite3_bind_int(stmt, val[0], 1);
sqlite3_bind_int(stmt, val[1], 4);

第二个参数是索引,第三个参数是值。由于两者都是 int 类型,因此没有编译时错误。

更改为:

sqlite3_bind_int(stmt, 1, val[0]);
sqlite3_bind_int(stmt, 4, val[1]);

关于c - SQLite3 : update not working correctly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23697197/

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