すべての項目を SQLite データベースに格納したいということで、char 配列のリストを持っています。
ここで、sqlite3 Insert item through Passing parameter が完了しました。このデータベースを動的に使用したいだけです。私は C++ 開発が初めてです。
#include <iostream>
using namespace std;
#include "sqlite3.h"
#include<string.h>
#define STRING_MAX 32
typedef struct metadata_t {
char userid[256];
char firstname[256];
char lastname[256];
char username[256];
char password[256];
char email[256];
char userphone[256];
char time[256];
} metadata_t;
void insertdata1(metadata_t * data);
int main(int argc, const char *argv[])
{
struct metadata_t *data;
cin >> data->userid;
cin >> data->firstname;
cin >> data->lastname;
cin >> data->username;
cin >> data->password;
cin >> data->email;
cin >> data->userphone;
cin >> data->time;
insertdata1(data);
}
void insertdata1(metadata_t * data)
{
sqlite3 *db;
sqlite3_open("test1.db", &db);
string createQuery =
"CREATE TABLE IF NOT EXISTS items (userid INTEGER PRIMARY KEY, firstname TEXT,lastname TEXT,username TEXT,password TEXT,email text,userphone INTEGER, "
"time TEXT NOT NULL DEFAULT (NOW()));";
sqlite3_stmt *createStmt;
cout << "Creating Table Statement" << endl;
sqlite3_prepare(db, createQuery.c_str(), createQuery.size(),
&createStmt, NULL);
cout << "Stepping Table Statement" << endl;
if (sqlite3_step(createStmt) != SQLITE_DONE)
cout << "Didn't Create Table!" << endl;
char *a = "(";
char *d = ")";
char *b = "'";
char *c = ",";
char str1[1000];
char *str2 = "";
char *g = ";";
strcpy(str1,
"INSERT INTO items (userid,firstname,lastname,username,password,email,userphone,time)VALUES");
strcat(str1, a);
strcat(str1, b);
strcat(str1, data->userid);
strcat(str1, b);
strcat(str1, c);
strcat(str1, b);
strcat(str1, data->firstname);
strcat(str1, b);
strcat(str1, c);
strcat(str1, b);
strcat(str1, data->lastname);
strcat(str1, b);
strcat(str1, c);
strcat(str1, b);
strcat(str1, data->username);
strcat(str1, b);
strcat(str1, c);
strcat(str1, b);
strcat(str1, data->password);
strcat(str1, b);
strcat(str1, c);
strcat(str1, b);
strcat(str1, data->email);
strcat(str1, b);
strcat(str1, c);
strcat(str1, b);
strcat(str1, data->userphone);
strcat(str1, b);
strcat(str1, c);
strcat(str1, b);
strcat(str1, data->time);
strcat(str1, b);
strcat(str1, d);
strcat(str1, g);
std::string insertQuery = str1; // WORKS!
sqlite3_stmt *insertStmt;
cout << "Creating Insert Statement" << endl;
sqlite3_prepare(db, insertQuery.c_str(), insertQuery.size(),
&insertStmt, NULL);
cout << "Stepping Insert Statement" << endl;
if (sqlite3_step(insertStmt) != SQLITE_DONE)
cout << "Didn't Insert Item!" << endl;
}