📜  mariadb utf8mb4 - C 编程语言(1)

📅  最后修改于: 2023-12-03 14:44:09.069000             🧑  作者: Mango

Mariadb utf8mb4与C编程语言

介绍

Mariadb是一种开源的关系型数据库管理系统,与MySQL兼容。而utf8mb4,则是一种字符编码格式,用于支持Unicode的4字节字符。

C编程语言是一种高性能的系统级编程语言,在很多领域得到广泛的应用。

结合Mariadb utf8mb4与C编程语言,可以实现很多高性能的数据库应用。本篇文章将介绍如何在C语言中使用Mariadb utf8mb4。

安装Mariadb c connector

Mariadb提供了C语言的连接器,可以在C语言中使用Mariadb数据库。安装方法如下:

Linux
sudo apt-get install libmariadb-dev
macOS
brew install mariadb-connector-c
Windows

官网下载页面下载对应版本的安装程序,运行即可。

连接数据库

连接Mariadb数据库的程序示例:

#include <mariadb/mysql.h>

MYSQL* conn;

conn = mysql_init(NULL);

if(conn == NULL) {
    fprintf(stderr, "mysql_init failed\n");
    exit(1);
}

if(mariadb_connect(conn, "127.0.0.1", "root", "", "testdb", 3306, NULL, 0) != NULL) {
    fprintf(stderr, "mysql_connect error: %s\n", mysql_error(conn));
    exit(1);
}

mysql_close(conn);
创建表

创建表的示例:

if(mysql_query(conn, "CREATE TABLE users (username VARCHAR(64), password VARCHAR(128))") != 0) {
    fprintf(stderr, "mysql_query error: %s\n", mysql_error(conn));
    exit(1);
}
插入数据

插入数据的示例,假设我们已经有了一个包含用户名和密码的结构体:

struct User {
    const char* username;
    const char* password;
};

void insert_user(MYSQL* conn, const struct User* user) {
    char query[512];

    snprintf(query, 512, "INSERT INTO users (username, password) VALUES ('%s','%s')",
        user->username, user->password);

    if(mysql_query(conn, query) != 0) {
        fprintf(stderr, "mysql_query error: %s\n", mysql_error(conn));
        exit(1);
    }

}
查询数据

查询数据的示例:

void list_users(MYSQL* conn) {
    MYSQL_RES* result;
    MYSQL_ROW row;

    if(mysql_query(conn, "SELECT username, password FROM users") != 0) {
        fprintf(stderr, "mysql_query error: %s\n", mysql_error(conn));
        exit(1);
    }

    result = mysql_store_result(conn);

    while((row = mysql_fetch_row(result))) {
        printf("username: %s password: %s\n", row[0], row[1]);
    }

    mysql_free_result(result);
}
总结

以上演示了如何在C语言中连接、创建、插入和查询Mariadb utf8mb4数据库,这是一种高性能的数据库方案,可以用于很多性能要求较高的应用。