SettingsForm: Sound and music buttons added to dialog.
[mines3d.git] / sqlconn / sql_connector.cpp
blobdaebb80e2b996adba1f75d44ab664cbce308255e
1 #include "sql_connector.h"
2 #include <time.h>
3 #include <stdlib.h>
4 #include <string.h>
6 #define TABLEDATA_BUFSIZE 255
8 Sql_connector::Sql_connector(void)
10 int i;
12 c_data = ( struct conn_data * )malloc( sizeof(struct conn_data) );
13 c_data->server_name = "webdev.felk.cvut.cz";
14 c_data->user_name = "horkyja3";
15 c_data->db_name = "horkyja3";
16 c_data->db_passwd = "tq4ovxdu";
17 c_data->db_port = 3306;
18 c_data->db_cols = 4;
20 if( (c_data->table_data = (char**)malloc((c_data->db_cols+1) * sizeof *(c_data->table_data) )) )
22 for (i=0;i<=c_data->db_cols;i++)
24 c_data->table_data[i] = (char *)malloc( sizeof(char) * TABLEDATA_BUFSIZE+1 );
27 snprintf(c_data->table_data[0], TABLEDATA_BUFSIZE, "api_miny_score");
28 snprintf(c_data->table_data[1], TABLEDATA_BUFSIZE, "jmeno");
29 snprintf(c_data->table_data[2], TABLEDATA_BUFSIZE, "skore");
30 snprintf(c_data->table_data[3], TABLEDATA_BUFSIZE, "date");
31 snprintf(c_data->table_data[4], TABLEDATA_BUFSIZE, "difficulty");
33 fprintf(stderr, "malloc ok\n");
36 else
38 fprintf(stderr, "malloc failed\n");
44 Sql_connector::~Sql_connector(void)
46 int i;
48 for (i=0;i<=c_data->db_cols;i++)
50 free(c_data->table_data[i]);
52 free( c_data->table_data );
53 free(c_data);
57 int Sql_connector::connect(void)
59 fprintf(stderr, "MySQL client version: %s\n", mysql_get_client_info());
61 conn = mysql_init(0);
63 if (conn == 0) {
64 fprintf(stderr, "error: %u %s\r\n",mysql_errno(conn),mysql_error(conn));
67 if (mysql_real_connect(conn,c_data->server_name,c_data->user_name,
68 c_data->db_passwd,c_data->db_name,c_data->db_port,0,0) == 0 )
70 fprintf(stderr, "error: %u %s\r\n",mysql_errno(conn),mysql_error(conn));
72 fprintf(stderr, "mysql connect ok\n");
73 return 0;
76 int Sql_connector::disconnect(void)
78 mysql_close(conn);
79 fprintf(stderr, "disconnected.\n");
80 return 0;
83 int Sql_connector::insertScore(const char * name, int score,byte difficulty)
85 char * query;
86 int len = 0,i;
87 int h,m,s;
89 time_t t;
90 tm * ptm;
91 time(&t);
93 ptm = gmtime ( &t );
94 ptm->tm_year += 1900;
95 ptm->tm_mon++;
96 (++ptm->tm_hour) %= 24;
98 s = score % 60;
99 m = (score / 60) % 60;
100 h = score / 3600;
102 for (i=0;i<=c_data->db_cols;i++)
104 len += strlen( c_data->table_data[i]);
107 len += 100;
108 query = (char * ) malloc(sizeof(char) * len);
109 fprintf(stderr, "%i\n",ptm->tm_isdst);
110 sprintf(query,"INSERT INTO %s (%s,%s,%s,%s) VALUES ( '%s','%i:%i:%i','%i-%i-%i %i:%i:%i','%i' );",
111 c_data->table_data[0],c_data->table_data[1],c_data->table_data[2],c_data->table_data[3],c_data->table_data[4],
112 name,h,m,s,ptm->tm_year,ptm->tm_mon,ptm->tm_mday,ptm->tm_hour,ptm->tm_min,ptm->tm_sec,difficulty);
113 if( (len = mysql_query(conn,query)) )
115 fprintf(stderr, "error: %u %s\r\n",mysql_errno(conn),mysql_error(conn));
118 free(query);
120 return len;