c连接mysql -demo

参考:https://blog.csdn.net/u012206617/article/details/88960215

1. 下载mysql c客户端:https://cdn.mysql.com/archives/mysql-connector-c/mysql-connector-c-6.1.11-macos10.12-x86_64.dmg

//
// Created by gxf on 2020/2/4.
//

#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>

void query(MYSQL *conptr);
void updateSql(MYSQL *mysql, char *updateSQL);

int main() {
    MYSQL *conptr = NULL;
    conptr = mysql_init(NULL);
    if (!conptr) {
        printf("init mysql fail\n");
        exit(1);
    }
    conptr = mysql_real_connect(conptr, "localhost", "root", "", "test",
            3306, NULL, 0);
    if (!conptr) {
        printf("connect mysql fail\n");
        exit(1);
    }
    printf("connect mysql success\n");
    // query
    query(conptr);
    // insert
    updateSql(conptr, "insert into person(name, address) values('guanxianseng', 'chengdu')");
    // delete
    updateSql(conptr, "delete from person where name='guanxianseng'");
    // update
    updateSql(conptr, "update person set address='chengdu1111' where name='guanxiangfei'");
    // query
    query(conptr);

    mysql_close(conptr);
    return 0;
}

// query
void query(MYSQL *conptr) {
    MYSQL_RES *resptr;
    MYSQL_ROW row;
    MYSQL_FIELD filed;
    int res, i, j;
    res = mysql_query(conptr, "select name, address from person");
    // query fail
    if (res) {
        printf("query db fail: %s\n", mysql_error(conptr));
        return;
    }
    resptr = mysql_store_result(conptr);
    if (!resptr) {
        printf("store fail:%s\n", mysql_error(conptr));
        return;
    }
    printf("row nums: %d\n", mysql_num_rows(resptr));
    j = mysql_num_fields(resptr);
    while ((row = mysql_fetch_row(resptr))) {
        for (i = 0; i < j; i++) {
            printf("%s \t", row[i]);
        }
        printf("\n");
        if (mysql_errno(conptr)) {
            printf("retrive faile: %s\n", mysql_error(conptr));
            return;
        }
    } //while

//    mysql_free_result(conptr);
}

// insert update delete
void updateSql(MYSQL *mysql, char *updateSQL) {
    int res;
    res = mysql_query(mysql, updateSQL);
    if (res) {
        // update fail
        printf("insert errorno: %d error: %s\n", mysql_errno(mysql), mysql_error(mysql));
    } else {
        // update success
        printf("update rows nums:%d\n", mysql_affected_rows(mysql));
    }
}

  

cmaklist.txt

# mysql demo
include_directories(/usr/local/include/mysql)
link_directories(/usr/local/mysql/lib)
link_libraries(mysqlclient)
add_executable(mysql-demo2 mysql-demo1.c)

create table sql

create table person(name varchar(50), address varchar(100));

  

  

  

posted on 2020-02-04 20:41  luckygxf  阅读(426)  评论(0编辑  收藏  举报

导航