Use el lenguaje c para conectarse a la base de datos mysql e insertar datos en lotes

Para usar C++ para conectarse a la base de datos, debe instalar la base de datos localmente u obtener la dirección IP del host donde se encuentra la base de datos. Permítanme explicarles primero que estoy usando una base de datos mysql8.0 de 64 bits, y el vs es vs2019.

1. Configurar el entorno

   Primero abra vs2019, cree un proyecto vacío, luego haga clic derecho en la posición que se muestra en la figura a continuación, luego busque la propiedad inferior, haga clic para ingresar

 Vaya a la página a continuación, haga clic en el directorio VC++, luego busque Archivos de programa en el disco del archivo C de la computadora, busque MySQL, busque MySQL Server 8.0, ingrese la carpeta de inclusión y coloque la dirección del archivo C:\Program Files\MySQL\MySQL Server 8.0\include Cópielo a la posición 2 en la figura a continuación, luego regrese al nivel anterior para ingresar a la carpeta lib y copie la dirección del archivo C:\Program Files\MySQL\MySQL Server 8.0\lib a la posición en la figura 3 a continuación .

Abra el enlazador, haga clic en Entrar, haga clic en Dependencias adicionales, en la carpeta vaya a la carpeta lib

encontrar libmysql.lib

 

 Copie el nombre de libmysql.lib en la ubicación que se muestra a continuación

Finalmente haga clic en Aplicar.

     Luego ingrese a la carpeta lib, copie libmysql.lib en la figura a continuación a C:\Windows\System32 en la unidad C

 

2. base de datos de enlace de idioma c

    pantalla de código

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<mysql.h>//数据库包含的头文件
#include<time.h>

int main()
{
	//固定不变的
	MYSQL mysql;    //一个数据库结构体  
	MYSQL_RES* res; //一个结果集结构体
	MYSQL_ROW row; //char** 二维数据,存放一条条记录
	//初始化数据库
	mysql_init(&mysql);
	//设置编码方式
	mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");

	//连接数据库                       
	if (mysql_real_connect(&mysql, "ip地址", "数据库的用户名 ", "数据库密码", "使用的数据库名", 3306, NULL, 0) == NULL)
	{
		printf("错误原因:%s\n", mysql_error(&mysql));
		printf("连接失败\n");
		exit(-1);
	}
	char* str1 = "insert into rand values(";//这里使用的表是事先创建好的
	char sql_insert[200];
	sprintf(sql_insert, "%s%d,'%s','%s',%d%s", str1, 3, "xiaoli", "1234a", 3, ")");//批量插入数据
	mysql_query(&mysql, sql_insert);
	//查询数据
	mysql_query(&mysql, "select * from rand");
	//获取结果集
	res = mysql_store_result(&mysql);
	//给ROW赋值,判断ROW是否为空,不为空就打印数据
	while (row = mysql_fetch_row(res))
	{
		printf("%s \n", row[0]);
	}
	//释放结果集
	mysql_free_result(res);
	//关闭数据库
	mysql_close(&mysql);
	//停留等待
	system("pause");
	return 0;

}

    3. Introducción a la clase

  1. Clase de manejo MYSQL

1. MYSQL mysql;

Esta es una clase de manejo de base de datos, que se requiere para todas las operaciones de base de datos.

   2.MYSQL_RES

2.MYSQL_RES* res;

Este es un conjunto de resultados de consulta, que se utiliza para almacenar los valores después de consultar la base de datos.

  3.MYSQL_ROW

fila 2.MYSQL_ROW

Esta no es una clase en esencia, es esencialmente equivalente a un puntero a una matriz de cadenas, es decir, un puntero secundario char**. La función de esta declaración es leer el uso interno del conjunto de resultados de la consulta MYSQL_RES línea por línea. Una columna en la tabla es un elemento equivalente a un puntero secundario, y hay varios punteros para tantas columnas como haya en la tabla.

    Esta es la primera vez que escribo un blog, hay errores, espero que todos puedan corregirlos.

Supongo que te gusta

Origin blog.csdn.net/weixin_62859191/article/details/125663580
Recomendado
Clasificación