/*!@file \brief Database storage for OCK's promo handler \details \author Ken \date Sept 2016 ----------------------------------------------------------------------------*/ /* Standard */ #include //print #include //mem /* Third Party */ #include /* Internal */ #include int db_init(void); int db_insert(char*,char*,char*,char*); MYSQL *mysql; int db_init () #define HOST "localhost" #define USER "ock" #define PASS "#0CK0r34!" #define DATABASE "ock_db" #define PORT 3306 #define SOCKET NULL #define FLAGS 0 #define DATTABLE "promo_submissions" #define DTABFMT \ "id not null auto_increment," \ "firstname varchar (32) not null," \ "lastname varchar (32) not null," \ "email varchar (64) not null," \ "phone varchar (16) not null," \ "primary key (id)" { mysql = mysql_init(NULL); if ((mysql = mysql_real_connect(mysql, HOST, USER, PASS, DATABASE, PORT, SOCKET, FLAGS)) == NULL) { fprintf(stderr,"Failed to establish connection to db.\n"); return -1; } if (mysql_query(mysql, "SHOW TABLES LIKE '" DATTABLE "';")) { fprintf(stderr,"Initial query failed\n"); return -1; } if (mysql_num_rows(mysql_use_result(mysql)) < 1) if (mysql_query(mysql, "create table " DATTABLE " (" DTABFMT ");")) { fprintf(stderr,"Failed to create table.\n"); return -1; } return 0; } int db_insert ( char *fname, char *lname, char *email, char *phone ) #define INSERT_FMT \ "INSERT INTO " DATTABLE \ " VALUES ('%s','%s','%s','%s')" \ , fname, lname, email, phone #define INSERT_ERR "SQL Insertion Failed for %s %s - %s %s\n" \ , fname, lname, email, phone { char sqlinsert[256]; sprintf(sqlinsert, INSERT_FMT); if (mysql_query(mysql, sqlinsert)) { fprintf(stderr, INSERT_ERR); return -1; } return 0; }