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.