[c/c++] c 操作mysql数据库

输出mysql版本

1 #include <my_global.h>

2 #include <mysql.h>

3 #include <stdlib.h>

4 #include <stdio.h>

5 

6 int main(int argc,char **argv) {

7     printf("mysql client version:%s\n",mysql_get_client_info());

8     return 0;

9 }

编译

gcc version.c -o version $(mysql_config --cflags --libs)

结果

$ ./version

mysql client version:5.1.63

 

创建DB

 1 #include <my_global.h>

 2 #include <mysql.h>

 3 #include <stdio.h>

 4 #include <stdlib.h>

 5 

 6 int main(int argc,char **argv) {

 7     MYSQL *conn;

 8 

 9     conn = mysql_init(NULL);

10     if(conn == NULL) {

11         printf("Error %u:%s\n",mysql_errno(conn),mysql_error(conn));

12         exit(EXIT_FAILURE);

13     }

14 

15     // host user password 

16     if(mysql_real_connect(conn,"localhost","root","admin",NULL,0,NULL,0) == NULL) {

17         printf("Error %u:%s\n",mysql_errno(conn),mysql_error(conn));

18         exit(EXIT_FAILURE);

19     }

20 

21     char* sql = "CREATE DATABASE IF NOT EXISTS test_cdb";

22     //char* sql = "CREATE database test_cdb";

23     if(mysql_query(conn,sql)) {

24         printf("Error %u:%s\n",mysql_errno(conn),mysql_error(conn));

25         exit(EXIT_FAILURE);

26     }

27 

28     mysql_close(conn);

29 

30     exit(EXIT_SUCCESS);

31 }

创建Table

 1 #include <my_global.h>

 2 #include <mysql.h>

 3 #include <stdio.h>

 4 #include <stdlib.h>

 5 

 6 int main(int argc,char **argv) {

 7     MYSQL *conn;

 8 

 9     conn = mysql_init(NULL);

10     // host user password dbname

11     if(mysql_real_connect(conn,"localhost","root","admin","test_cdb",0,NULL,0) == NULL) {

12         printf("Error %u:%s",mysql_errno(conn),mysql_error(conn));

13         exit(EXIT_FAILURE);

14     }

15 

16     char* sql = "CREATE TABLE IF NOT EXISTS test(name VARCHAR(25));";

17     if(mysql_query(conn,sql)) {

18         printf("Error %u:%s",mysql_errno(conn),mysql_error(conn));

19         exit(EXIT_FAILURE);

20     }

21     sql = "INSERT INTO test VALUES('test1')";

22     if(mysql_query(conn,sql)) {

23         printf("Error %u:%s",mysql_errno(conn),mysql_error(conn));

24         exit(EXIT_FAILURE);

25     }

26 

27     mysql_close(conn);

28     exit(EXIT_SUCCESS);

29 }

查询

 1 #include <my_global.h>

 2 #include <mysql.h>

 3 #include <stdio.h>

 4 #include <stdlib.h>

 5 

 6 int main(int argc,char **argv) {

 7     MYSQL *conn;

 8     MYSQL_RES *result;

 9     MYSQL_ROW row;

10     MYSQL_FIELD *field;

11 

12     int num_fields;

13     int i;

14     int j = 0;

15 

16     conn = mysql_init(NULL);

17     if(mysql_real_connect(conn,"localhost","root","admin","test_cdb",0,NULL,0) == NULL) {

18         printf("Error %u:%s",mysql_errno(conn),mysql_error(conn));

19         exit(EXIT_FAILURE);

20     }

21 

22     char* sql = "SELECT * FROM test";

23     if(mysql_query(conn,sql)) {

24         printf("Error %u:%s",mysql_errno(conn),mysql_error(conn));

25         exit(EXIT_FAILURE);

26     }

27     result = mysql_store_result(conn);

28     num_fields = mysql_num_fields(result); // 记录项数

29 

30     while((row = mysql_fetch_row(result))) {

31         // for(int i = 0; i < num_fields;i++) { // allowed c99 mode

32         for(i = 0; i < num_fields;i++) {

33             if(j == 0) {

34                 // struct ?

35                 while(field = mysql_fetch_field(result)) {

36                     printf("%s ",field->name);                    

37                 }

38                 printf("\n");

39             }

40             printf("%s ",row[i]? row[i] : "NULL");

41         }

42         printf("\n");

43         j++;

44     }

45     mysql_free_result(result);

46 

47     mysql_close(conn);

48     exit(EXIT_SUCCESS);

49 }

 

 

你可能感兴趣的:(mysql)