blob: cc5c5b597d284c0f63bbaf9325fb64b83900153a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include "dbi.h"
struct og_dbi *og_dbi_open(struct og_dbi_config *config)
{
struct og_dbi *dbi;
dbi = (struct og_dbi *)malloc(sizeof(struct og_dbi));
if (!dbi)
return NULL;
dbi_initialize_r(NULL, &dbi->inst);
dbi->conn = dbi_conn_new_r("mysql", dbi->inst);
if (!dbi->conn) {
free(dbi);
return NULL;
}
dbi_conn_set_option(dbi->conn, "host", config->host);
dbi_conn_set_option(dbi->conn, "username", config->user);
dbi_conn_set_option(dbi->conn, "password", config->passwd);
dbi_conn_set_option(dbi->conn, "dbname", config->database);
dbi_conn_set_option(dbi->conn, "encoding", "UTF-8");
if (dbi_conn_connect(dbi->conn) < 0) {
free(dbi);
return NULL;
}
return dbi;
}
void og_dbi_close(struct og_dbi *dbi)
{
dbi_conn_close(dbi->conn);
dbi_shutdown_r(dbi->inst);
free(dbi);
}
|