diff options
Diffstat (limited to 'db.c')
-rw-r--r-- | db.c | 39 |
1 files changed, 39 insertions, 0 deletions
@@ -30,6 +30,12 @@ sqlite3 *db = NULL; sqlite3_stmt *stmt_global_stat = NULL; +sqlite3_stmt *stmt_personal_stat = NULL; + +sqlite3_stmt *stmt_search = NULL; + +sqlite3_stmt *stmt_random = NULL; + void db_init(void) { int r; r = sqlite3_open(cmd.db_path, &db); @@ -76,6 +82,27 @@ void db_init(void) { errmsg = (char *) sqlite3_errstr(r); goto sql_err; } + + if ((r = sqlite3_prepare_v2(db, "SELECT i FROM stats WHERE user = ?", -1, &stmt_personal_stat, NULL))) { + errmsg = (char *) sqlite3_errstr(r); + goto sql_err; + } + + if ((r = sqlite3_prepare_v2(db, "SELECT id, t, url FROM says WHERE t LIKE ? LIMIT 10;", + -1, + &stmt_search, + NULL))) { + errmsg = (char *) sqlite3_errstr(r); + goto sql_err; + } + + if ((r = sqlite3_prepare_v2(db, "SELECT id, t, url FROM says ORDER BY RANDOM() LIMIT 10;", + -1, + &stmt_random, + NULL))) { + errmsg = (char *) sqlite3_errstr(r); + goto sql_err; + } } void db_close(void) { @@ -85,6 +112,18 @@ void db_close(void) { sqlite3_finalize(stmt_global_stat); stmt_global_stat = NULL; } + if (stmt_personal_stat) { + sqlite3_finalize(stmt_personal_stat); + stmt_personal_stat = NULL; + } + if (stmt_random) { + sqlite3_finalize(stmt_random); + stmt_random = NULL; + } + if (stmt_search) { + sqlite3_finalize(stmt_search); + stmt_search = NULL; + } sqlite3_close(db); db = NULL; } |