summaryrefslogtreecommitdiff
path: root/db.c
diff options
context:
space:
mode:
Diffstat (limited to 'db.c')
-rw-r--r--db.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/db.c b/db.c
index 4c340ba..4400341 100644
--- a/db.c
+++ b/db.c
@@ -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;
}