zoukankan      html  css  js  c++  java
  • [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 }

     

     

    think in coding
  • 相关阅读:
    【网页前端】JS呈现时间戳为与当前时间比较结果
    【Django工具】Django_debug_toolbar使用
    【Django Models】Django数据查询 汇聚
    【Django Models】虚拟化提取Models公共的功能
    【网页在线编辑】图文发送的模式
    【Django后台数据管理】后台数据新建或者保存,经常遇到提示This field is required
    【BBS】Discuz部署
    【Django】QuerySet的分页和排序
    【Django数据库】如何将一个表自定义的key列还原成id列作为key
    18.6
  • 原文地址:https://www.cnblogs.com/bluefrog/p/2572432.html
Copyright © 2011-2022 走看看