這個錯誤發生在行SQL錯誤:近 「:02」:語法錯誤
sprintf(sql, "INSERT INTO Device_Details (imei, mobile_num, passwd, Dev_addr, id) " \
"VALUES (%s, %d, %s, %s, %d); ", imei, id, passwd, dev_addr, id);
rc = sqlite3_exec(db, sql, 0, 0, &zErrMsg);
其中
char* passwd, *imei, *mobile_num, *strtok_var ;
cout<<idIndex << "+" << passwd<<"+"<<imei << "+" << mobile_num << endl;
打印 1 + ABC + ABC + ABC
表創建
sql = "CREATE TABLE Device_Details(" \
"imei CHAR(32) PRIMARY KEY NOT NULL," \
"mobile_num INT NOT NULL," \
"passwd CHAR(50) ," \
"Dev_addr CHAR(50) ," \
"id INT);";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, 0/*callback*/, 0, &zErrMsg);
'cout << ...'會暗示需要一個C++標記而不是C. –
請參閱[準備查詢](https://stackoverflow.com/questions/4820374/sqlite-escape-string-c) 。 – tadman