C++连接mysql
// 使用 mysql 提供的进行数据库编程,需要保证当前的应用哦个// 程序版本(x86/x64),库文件版本和本机的数据库完全一致。需// 要将安装目录下的整个 inlcude 文件夹和 lib 路径下的 // libmysql.lib 和 libmysql.dll 拷贝当当前的项目路径下#include <stdio.h>#include <windows.h>#include "include/mysql.h"#pragma comment(lib, "libmysql.lib")// 检查数据库的执行是否成功void check(MYSQL* mysql){    // mysql_errno 返回的是错误码    if (mysql_errno(mysql) != 0)    {        // mysql_error 返回的是错误信息        printf("连接数据库出错: %s\n",            mysql_error(mysql));        system("pause"); exit(0);    }}// 向指定的表中添加数据void insert(MYSQL* mysql, LPCSTR sql){    // 直接执行添加数据的操作    mysql_query(mysql, sql);    // 需要检查数据是否添加成功    check(mysql);}// 查询指定的数据void select(MYSQL* mysql, LPCSTR sql){    // 直接执行添加数据的操作    mysql_query(mysql, sql);     check(mysql);    // 获取到查询的结果值    MYSQL_RES* pRes = NULL;    pRes = mysql_use_result(mysql);    check(mysql);    // 获取到查询结果有多少    int nColCount = mysql_num_fields(pRes);    // 输出每一列的列名    MYSQL_FIELD* pField = nullptr;    for (int i = 0; i < nColCount; ++i)    {        // 从结果中获取到每一列的名称        pField = mysql_fetch_field(pRes);        // 某一些情况下不存在列名不存在的就是 null        if (pField == nullptr)            continue;        printf("%s | ", pField->name);    }    puts("");    // 输出每一个查询到的字段    MYSQL_ROW row = nullptr;    while (row = mysql_fetch_row(pRes))    {   // 获取每一行的信息        for (int i = 0; i < nColCount; ++i)        {    // 需要提防产生空指针的情况            if (row[i] != nullptr)                printf("[%s] ", row[i]);            else                printf("[null] ");        }        printf("\n");    }}int main(int argc, char* argv[]){    // 修改控制台的默认字符编码    system("chcp 65001");    // 1. 初始化 mysql 数据库    mysql_library_init(argc, argv, nullptr);    // 2. 操作 mysql 数据库需要提供一个 MYSQL 对象    MYSQL mysql = { 0 };    mysql_init(&mysql);    // 3. 连接数据库,需要提供明文的数据库信息    mysql_real_connect(&mysql, "127.0.0.1", "root",         "66666666", "my_table", 3306, nullptr, 0);    check(&mysql);    // 4. 向数据库中添加信息    // insert(&mysql, "INSERT INTO my_class(m_name, m_count) VALUE('41', 41);");    // 5. 从数据库中查询信息    select(&mysql, "SELECT * FROM my_student;");    // 6. 清理 mysql 数据库    mysql_library_end();    return 0;}
python连接mysql
import pymysqlclass mysql(object):    # 连接到数据库    def __init__(self):        try:            # 创建连接对象,连接到数据库            self.connect = pymysql.connect(host="127.0.0.1",                    user="root", password="66666666", db="my_table")            # 获取到游标对象,游标对象被用于执行查询操作            self.cursor = self.connect.cursor()        except Exception as e:            # 一旦出现问题,这里会打印错误信息            print(e)    # 添加数据到表中    def insert(self, sql):        try:            # 使用 execute 执行 sql 指令            self.cursor.execute(sql)            # 任何对 sql 数据库执行修改的操作都需要提交            self.connect.commit()        except Exception as e:            # 如果指令执行出错,理论应该回滚操作            self.connect.rollback()            # 输出错误信息            print(e)    # 查询数据,返回查询到的数据和数量    def select(self, sql):        try:            # 使用 execute 执行 sql 指令            self.cursor.execute(sql)            # 使用 fetchall 获取所有结果            result = self.cursor.fetchall()            # 使用 rowcount 获取返回的条目数量            count = self.cursor.rowcount            # 查询到的结果是一个由所有的条目组成的元组            # 元组的每一个元素又是一个元组,这个元组中            # 保存的是查询到的每一列的信息            return count, result        except Exception as e:            # 如果指令执行出错,理论应该回滚操作            self.connect.rollback()            # 输出错误信息            print(e)if __name__ == "__main__":    sql = mysql()    # sql.insert("INSERT INTO my_class VALUE(43, '43', 43);")    print(sql.select("SELECT * FROM my_student;"))