使用c+;将特定输入插入数据库+;sqlite 我在C++中很新,想知道是否有人能帮我写出这段代码,基本上没有错误,但是我想做的是当用户输入他们的名字、性别、种族时,它会把它保存到一个数据库中,它创建数据库但不创建表,也不插入值名称性别种族
使用c+;将特定输入插入数据库+;sqlite 我在C++中很新,想知道是否有人能帮我写出这段代码,基本上没有错误,但是我想做的是当用户输入他们的名字、性别、种族时,它会把它保存到一个数据库中,它创建数据库但不创建表,也不插入值名称性别种族使用c+;将特定输入插入数据库+;sqlite 我在C++中很新,想知道是否有人能帮我写出这段代码,基本上没有错误,但是我想做的是当用户输入他们的名字、性别、种族时,它会把它保存到一个数据库中,它创建数据库但不创建表,也不插入值名称性别种族,c++,sqlite,C++,Sqlite,使用c+;将特定输入插入数据库+;sqlite 我在C++中很新,想知道是否有人能帮我写出这段代码,基本上没有错误,但是我想做的是当用户输入他们的名字、性别、种族时,它会把它保存到一个数据库中,它创建数据库但不创建表,也不插入值名称性别种族 void Intro() { sqlite3 *db; sqlite3_stmt * st; string sql3; cout << "Enter the name of your hero:\n"; c
void Intro()
{
sqlite3 *db;
sqlite3_stmt * st;
string sql3;
cout << "Enter the name of your hero:\n";
cin >> name;
cout << "Enter hero sex: (M/F)\n";
cin >> sex;
cout << "Enter hero race: (e.g dwarf,elf,human)\n";
cin >> race;
sql3 = "CREATE TABLE PERSONS("
"ID INT PRIMARY KEY NOT NULL,"
"NAME TEXT NOT NULL,"
"SEX TEXT NOT NULL,"
"RACE TEXT NOT NULL,"
;
string sql = "INSERT INTO PERSONS (name,sex,race) VALUES (" + name + ',' + sex + ',' + race + ");";
if(sqlite3_open("pw.db", &db) == SQLITE_OK)
{
sqlite3_prepare( db, sql.c_str(), -1, &st, NULL);
sqlite3_bind_text(st, 1, name.c_str(), name.length(), SQLITE_TRANSIENT);
sqlite3_bind_text(st, 2, sex.c_str(), sex.length(), SQLITE_TRANSIENT);
sqlite3_bind_text(st, 3, race.c_str(), race.length(), SQLITE_TRANSIENT);
sqlite3_step( st );
}
void Intro()
{
sqlite3*db;
sqlite3_stmt*st;
字符串sql3;
姓名;
不能>性;
种族;
sql3=“创建表人员(”
ID INT主键不为空
名称文本不为空
性别文本不为空
竞赛文本不为空
;
string sql=“在人员(姓名、性别、种族)值中插入(“+name+”、“+sex+”、“+race+”)”;
如果(sqlite3_打开(“pw.db”、&db)==SQLITE_正常)
{
sqlite3_prepare(db,sql.c_str(),-1,&st,NULL);
sqlite3_bind_text(st,1,name.c_str(),name.length(),SQLITE_TRANSIENT);
sqlite3_bind_text(st,2,sex.c_str(),sex.length(),SQLITE_TRANSIENT);
sqlite3_绑定_文本(st,3,race.c_str(),race.length(),SQLITE_TRANSIENT);
sqlite3_步骤(st);
}
> p>我在C++的SQLite中并不擅长,但是我可以看到你准备好的语句出现了什么问题。你应该在 INSERT /COM>语句中使用<代码> >代码>占位符,然后将实际值绑定到:
if (sqlite3_open("pw.db", &db) == SQLITE_OK)
{
string sql = "INSERT INTO PERSONS (name, sex, race) VALUES (?, ?, ?);";
int rc = sqlite3_prepare(db, sql.c_str(), -1, &st, NULL);
if (rc == SQLITE_OK)
{
sqlite3_bind_text(st, 1, name.c_str(), name.length(), SQLITE_TRANSIENT);
sqlite3_bind_text(st, 2, sex.c_str(), sex.length(), SQLITE_TRANSIENT);
sqlite3_bind_text(st, 3, race.c_str(), race.length(), SQLITE_TRANSIENT);
sqlite3_step(st);
sqlite3_finalize(st);
}
}
仍然停留在这个问题上:(所有函数调用都必须是。