1
這是我的代碼:創建以C sqlite3的表,但有一個空數據庫文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sqlite3.h>
#define DBFILE "./userinfo.db" //It's empty file
int main(int argc, char *argv[])
{
int retval;
sqlite3_stmt *stmt;
sqlite3 *handle;
retval = sqlite3_open(DBFILE, &handle);
if(retval)
{
perror("sqlite3_open");
exit(-1);
}
printf("Connection successful...\n");
char create_table[] = "CREATE TABLE IF NOT EXISTS"
"users(uname TEXT PRIMARY KEY, pass TEXT NOT NULL)";
retval = sqlite3_exec(handle, create_table, 0, 0, 0);
if (retval)
{
perror("sqlite3_exec");
exit(-1);
}
sqlite3_close(handle);
return 0;
}
我編譯它,並沒有任何錯誤運行。
之前,我運行它,數據庫文件userinfo.db
是一個空文件
我跑後,我又得到了一個empty database file
。
爲什麼?桌子沒有被保存?
'炭CREATE_TABLE [] = 「CREATE TABLE IF NOT EXISTS」 「用戶(UNAME TEXT PRIMARY KEY,傳遞TEXT NOT NULL)「;'這不應該只是一個字符串嗎? –
你需要EXISTS和用戶之間的空間,但不知道爲什麼沒有錯誤。 – ergosys
@IonutHulub兩個字符串文字之間只有空格會自動連接爲單個字符串文字。 –