c - sqlite3(C语言): no such column

标签 c sqlite

我想把U盘的数据存到数据库sqlite3中。<​​/p>

这是USB的数据

字符 T0[8], T1[8], T2[8], T3[8], T4[8];

我用

创建了一个表
const char* Temprature_table = "Create table Temprature_1 (ID INTERGER PRIMARY KEY,Thermo_0 decimal(5,1),Thermo_1 decimal(5,1),Thermo_2 decimal(5,1),Thermo_3 decimal(5,1),Thermo_4 decimal(5,1),time DATETIME)";

然后我向表中插入数据

result = sqlite3_exec (DB,"Insert  into Temprature VALUES(NULL, T0, T1, T2, T3, T4, time)",0,0,&errmsg);

char array[256];
sprintf(array, "Insert into Temprature_1 VALUES(NULL, T0, T1, T2, T3, T4, time)");
result = sqlite3_exec (DB,array,0,0,&errmsg);

但是有一个问题:“无法插入数据:没有这样的列:T0”。 我不知道为什么。 谢谢。

最佳答案

您的 C 代码和 SQL 代码在不同的域中运行并且不共享变量。所以你不能直接从 SQL 代码访问 C 变量。从查看文档来看,这似乎是正确的解决方案:

sqlite3_stmt *ppStmt;
sqlite3_prepare_v2(DB, "Insert into Temprature_1 VALUES(NULL, ?, ?, ?, ?, ?, time)", 58, &ppStmt, NULL);

sqlite3_bind_text(ppStmt, 1, T0, 8, SQLITE_TRANSIENT);
sqlite3_bind_text(ppStmt, 2, T1, 8, SQLITE_TRANSIENT);
sqlite3_bind_text(ppStmt, 3, T2, 8, SQLITE_TRANSIENT);
sqlite3_bind_text(ppStmt, 4, T3, 8, SQLITE_TRANSIENT);
sqlite3_bind_text(ppStmt, 5, T4, 8, SQLITE_TRANSIENT);

sqlite3_step(ppStmt);
sqlite3_finalize(ppStmt);

关于c - sqlite3(C语言): no such column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12421089/

相关文章:

仅使用按位操作将 float 转换为 int (float2int)

c - 是否有任何 C 标准头文件包含 ASCII 别名?

c - 使 udp 套接字成为非阻塞

php - 拉维尔 5.1 : Relationships with SQLite rowid?

sqlite - 如何显示zumero用户信息而不允许访问整个身份验证数据库?

java - 通过 getIntent() putExtra() 传递图像

java - 不在 onCreate 方法中添加 SQLite 条目

c - 这个C函数有什么作用?

c - 如何使用 scanf() 从输入中读取直到找到换行符?

c# - 为什么 SQLite 插入会非常慢? (使用的交易)