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는 [] ="NOT이있는 경우 테이블 만들기 "(UNAME을 TEXT PRIMARY KEY, TEXT NOT NULL을 전달하십시오) ";'이것은 하나의 문자열이 아니어야합니까? –
EXISTS와 사용자 사이에 공백이 있어야하지만 오류가없는 이유는 없습니다. – ergosys
@IonutHulub 두 개의 문자열 리터럴 사이에 공백 만 있으면 하나의 문자열 리터럴로 자동 연결됩니다. –