MySQL数据表中插入数据并查询输出的实现

MySQL数据表中插入数据是我们很常见的操作,下面就为您详细介绍MySQL数据表中插入数据并查询输出的实现方法步骤,如果您对MySQL数据表方面感兴趣的话,不妨一看。

 
 
 
  1. CREATE TABLE demotable (   
  2. id int(11) NOT NULL auto_increment,   
  3. demodata varchar(255) default NULL,   
  4. PRIMARY KEY (id)   
  5. TYPE=MyISAM;  
  6.  
  7. ----------往数据表中插入数据并查询输出----------  
  8. #include <mysql.h> /* Headers for MySQL usage */   
  9. #include <stdio.h>   
  10. #include <stdlib.h>   
  11. #include <string.h>   
  12.  
  13. int main(int argc, char **argv){  
  14. MYSQL demo_db;  
  15. mysql_init(&demo_db);  
  16.  
  17. int insert_id;   
  18. char *encdata, *query;   
  19. int datasize;   
  20. MYSQL_RES *res; /* To be used to fetch information into */   
  21. MYSQL_ROW row;   
  22.  
  23. if(argc<2){   
  24.     printf("Please supply a string for insertion into the database\n");   
  25.     exit(0);   
  26. }   
  27.  
  28. if(!mysql_real_connect(&demo_db, "localhost", "root", "mysql", "demodb", 0, NULL, 0)){   
  29.     printf(mysql_error(&demo_db));   
  30.     exit(1);   
  31. }   
  32.  
  33. // if(mysql_select_db(&demo_db, "demodb")){ /* Select the database we want to use */   
  34. //    printf(mysql_error(&demo_db));   
  35. //    exit(1);   
  36. // }   
  37.  
  38. encdata=malloc(2*strlen(argv[1])+1);   
  39.  
  40. datasize=mysql_real_escape_string(&demo_db, encdata, argv[1], strlen(argv[1]));   
  41. //printf("%s\n",encdata);  
  42.  
  43. query=malloc(datasize+255);   
  44. sprintf(query, "INSERT INTO demotable(demodata) VALUES('%s')", encdata); /* Build query */  
  45. //printf("%s\n",query);  
  46.  
  47. if(mysql_real_query(&demo_db, query, strlen(query))){ /* Make query */   
  48.      printf(mysql_error(&demo_db));   
  49.      exit(1);   
  50. }   
  51. free(query);   
  52.  
  53. insert_id=mysql_insert_id(&demo_db); /* Find what id that data was given */   
  54.  
  55. query=malloc(255);   
  56. sprintf(query, "SELECT demodata FROM demotable WHERE id=%d", insert_id);   
  57. if(mysql_real_query(&demo_db, query, strlen(query))){ /* Make query */   
  58.      printf(mysql_error(&demo_db));   
  59.      exit(1);   
  60. }  
  61. free(query);   
  62.  
  63. res=mysql_store_result(&demo_db); /* Download result from server */   
  64. row=mysql_fetch_row(res); /* Get a row from the results */   
  65. printf("You inserted \"%s\".\n", row[0]);   
  66. mysql_free_result(res); /* Release memory used to store results. */   
  67. mysql_close(&demo_db);   
  68.  
  69. return 0;   
  70. }   
  71.  
  72.  

 

 

 

【编辑推荐】

显示MYSQL表信息的方法

深度解析MySQL创建关联表

MySQL MyISAM表结构的恢复

mysql数据库大小写的问题讨论

MySQL表别名的另类用法

THE END