Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int db_insert(const char * imsi, int tmsi, const char* imei){
- printf("IMSI %s IMEI %s\n", imsi,imei);
- MYSQL_STMT *stmt;
- unsigned long imsi_length=strlen(imsi);
- unsigned long imei_length=strlen(imei);
- char *sql;
- MYSQL_BIND param[5], result[1];
- sql = "INSERT INTO subscribers(IMSI,TMSI,IMEI,REG_TIME, NEXT_LUR) VALUES(?,?,?,unix_timestamp(),unix_timestamp()) \
- ON DUPLICATE KEY UPDATE TMSI =?, IMEI=?, REG_TIME=unix_timestamp(), NEXT_LUR=unix_timestamp()";
- MYSQL *con;
- if(db_connect(&con)){
- return -1;
- }
- stmt = mysql_stmt_init(con);
- if (!stmt)
- {
- printf("Could not initialize statement\n");
- return -1;
- }
- if (mysql_stmt_prepare(stmt, sql, strlen(sql))) {
- fprintf(stderr, " mysql_stmt_prepare(), INSERT failed\n");
- fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
- finish_with_error(con);
- return -1;
- }
- memset(param, 0, sizeof(param));
- memset(result, 0, sizeof(result));
- param[0].buffer_type = MYSQL_TYPE_STRING;
- param[0].buffer = (char *)imsi;
- param[0].buffer_length = STRING_SIZE;
- param[0].is_null = 0;
- param[0].length = &imsi_length;
- param[1].buffer_type = MYSQL_TYPE_LONG;
- param[1].buffer = (void *) &tmsi;
- param[1].buffer_length = 0;
- param[1].is_null = 0;
- param[2].buffer_type = MYSQL_TYPE_STRING;
- param[2].buffer = (void *) &imei;
- param[2].buffer_length = STRING_SIZE;
- param[2].is_null = 0;
- param[2].length=&imei_length;
- param[3].buffer_type = MYSQL_TYPE_LONG;
- param[3].buffer = (void *) &tmsi;
- param[3].buffer_length = 0;
- param[3].is_null = 0;
- param[4].buffer_type = MYSQL_TYPE_STRING;
- param[4].buffer = (void *) &imei;
- param[4].buffer_length = STRING_SIZE;
- param[4].is_null = 0;
- param[4].length=&imei_length;
- imsi_length=strlen(imsi);
- imei_length=strlen(imei);
- /*param[3].buffer_type = MYSQL_TYPE_TIMESTAMP;
- param[3].buffer = (void *) &ts;
- param[3].buffer_length = 0;
- param[3].is_null = 0;
- param[4].buffer_type = MYSQL_TYPE_TIMESTAMP;
- param[4].buffer = (void *) &ts;
- param[4].buffer_length = 0;
- param[4].is_null = 0;*/
- if (mysql_stmt_bind_param(stmt, param)) {
- fprintf(stderr, " mysql_stmt_bind_param() failed\n");
- fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
- finish_with_error(con);
- return -1;
- }
- if (mysql_stmt_execute(stmt)) {
- fprintf(stderr, " mysql_stmt_execute(), failed\n");
- fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
- finish_with_error(con);
- return -1;
- }
- if (mysql_stmt_close(stmt)) {
- fprintf(stderr, " failed while closing the statement\n");
- fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
- finish_with_error(con);
- return -1;
- }
- mysql_close(con);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement