zoukankan      html  css  js  c++  java
  • [c/c++] c 操作mysql数据库

    [c/c++] c 操作mysql数据库 - bluefrog - 博客园

    [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 }
    复制代码

     

     

  • 相关阅读:
    @RequestParam注解使用:Name for argument type [java.lang.String] not available, and parameter name information not found in class file either.
    cglib动态代理导致注解丢失问题及如何修改注解允许被继承
    springboot Autowired BeanNotOfRequiredTypeException
    git根据用户过滤提交记录
    不同包下,相同数据结构的两个类进行转换
    How to use Jackson to deserialise an array of objects
    jooq实践
    java如何寻找main函数对应的类
    Python--matplotlib
    Python 和 Scikit-Learn
  • 原文地址:https://www.cnblogs.com/lexus/p/2581109.html
Copyright © 2011-2022 走看看