技术员博客      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 }
    复制代码

  • 相关阅读:
    BPMN 2.0虚拟圆桌访谈
    使用Qt动画框架设计角色的二维动画(二)
    navicat sqlite使用了一种wine的方式来支持linux平台,
    Android实例剖析笔记(七) 狼人:
    用Python证明“真理再前进一步就是谬误”
    浅析Hibernate映射(四)——组件映射(component)
    使用curses管理基于文本的屏幕--(一)
    实现自定义对话框程序快捷键的两种方法
    危险选择职场必知的20条黄金法则危险选择
    Debian下安装virtualbox
  • 原文地址:https://www.cnblogs.com/lexus/p/2581109.html
Copyright © 2011-2022 技术员博客