我想把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/