Advertisement
Guest User

db_insert

a guest
Aug 22nd, 2014
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. int db_insert(const char * imsi, int tmsi, const char* imei){
  2. printf("IMSI %s IMEI %s\n", imsi,imei);
  3. MYSQL_STMT *stmt;
  4. unsigned long imsi_length=strlen(imsi);
  5. unsigned long imei_length=strlen(imei);
  6. char *sql;
  7. MYSQL_BIND param[5], result[1];
  8. sql = "INSERT INTO subscribers(IMSI,TMSI,IMEI,REG_TIME, NEXT_LUR) VALUES(?,?,?,unix_timestamp(),unix_timestamp()) \
  9. ON DUPLICATE KEY UPDATE TMSI =?, IMEI=?, REG_TIME=unix_timestamp(), NEXT_LUR=unix_timestamp()";
  10. MYSQL *con;
  11. if(db_connect(&con)){
  12. return -1;
  13. }
  14. stmt = mysql_stmt_init(con);
  15. if (!stmt)
  16. {
  17. printf("Could not initialize statement\n");
  18. return -1;
  19. }
  20. if (mysql_stmt_prepare(stmt, sql, strlen(sql))) {
  21. fprintf(stderr, " mysql_stmt_prepare(), INSERT failed\n");
  22. fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
  23. finish_with_error(con);
  24. return -1;
  25. }
  26. memset(param, 0, sizeof(param));
  27. memset(result, 0, sizeof(result));
  28.  
  29. param[0].buffer_type = MYSQL_TYPE_STRING;
  30. param[0].buffer = (char *)imsi;
  31. param[0].buffer_length = STRING_SIZE;
  32. param[0].is_null = 0;
  33. param[0].length = &imsi_length;
  34.  
  35. param[1].buffer_type = MYSQL_TYPE_LONG;
  36. param[1].buffer = (void *) &tmsi;
  37. param[1].buffer_length = 0;
  38. param[1].is_null = 0;
  39.  
  40. param[2].buffer_type = MYSQL_TYPE_STRING;
  41. param[2].buffer = (void *) &imei;
  42. param[2].buffer_length = STRING_SIZE;
  43. param[2].is_null = 0;
  44. param[2].length=&imei_length;
  45.  
  46. param[3].buffer_type = MYSQL_TYPE_LONG;
  47. param[3].buffer = (void *) &tmsi;
  48. param[3].buffer_length = 0;
  49. param[3].is_null = 0;
  50.  
  51. param[4].buffer_type = MYSQL_TYPE_STRING;
  52. param[4].buffer = (void *) &imei;
  53. param[4].buffer_length = STRING_SIZE;
  54. param[4].is_null = 0;
  55. param[4].length=&imei_length;
  56.  
  57. imsi_length=strlen(imsi);
  58. imei_length=strlen(imei);
  59. /*param[3].buffer_type = MYSQL_TYPE_TIMESTAMP;
  60. param[3].buffer = (void *) &ts;
  61. param[3].buffer_length = 0;
  62. param[3].is_null = 0;
  63.  
  64. param[4].buffer_type = MYSQL_TYPE_TIMESTAMP;
  65. param[4].buffer = (void *) &ts;
  66. param[4].buffer_length = 0;
  67. param[4].is_null = 0;*/
  68.  
  69.  
  70. if (mysql_stmt_bind_param(stmt, param)) {
  71. fprintf(stderr, " mysql_stmt_bind_param() failed\n");
  72. fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
  73. finish_with_error(con);
  74. return -1;
  75. }
  76. if (mysql_stmt_execute(stmt)) {
  77. fprintf(stderr, " mysql_stmt_execute(), failed\n");
  78. fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
  79. finish_with_error(con);
  80. return -1;
  81. }
  82. if (mysql_stmt_close(stmt)) {
  83. fprintf(stderr, " failed while closing the statement\n");
  84. fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
  85. finish_with_error(con);
  86. return -1;
  87. }
  88. mysql_close(con);
  89. return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement