赞
踩
因为踩坑太多所以写下该篇博客
首先要下载mysql
这里用的是MySQL8.0.16
记住mysql的安装路径,主要是include和lib的路径
参考另外一个博主的文章https://blog.csdn.net/mzlogin/article/details/5605320
主要是这个操作把libmysql.lib文件转化为libmysql.a文件
vscode首先要配置的能正常用,可以编译执行c程序
然后先在c_cpp_properties.json文件里的inlucdePath域里增加上上述mysql的include的路径,这里主要是解决编辑器里的头文件报波浪线的问题
重要的是改task.json文件
增加-I域和-L域,-I域下添加上述的mysql的include目录,-L域下添加上述的mysql的lib目录,最后加上-lmysql
如果出现类似“undefined reference to `mysql_init@4’”的问题就需要调整一下include和lib文件的版本在https://downloads.mysql.com/archives/c-c/处下载,有32和64两个版本,一个不行就换另外一个,换完之后要重新把libmysql.dll转化为libmysql.a
此时编译运行程序可能会闪退,需要把前面mysql的lib目录下的libmysql.dll文件复制到主程序相同的路径下
完美运行
附上网上找的数据库连接代码侵删
#include <stdio.h> #include <string.h> #include <stdlib.h> /*引入连接Mysql的头文件和lib包*/ #include "mysql.h" #pragma comment(lib,"libmysql") /*定义一些数据库连接需要的宏*/ #define HOST "localhost" /*MySql服务器地址*/ #define USERNAME "root" /*用户名*/ #define PASSWORD "123456" /*数据库连接密码*/ #define DATABASE "test" /*需要连接的数据库*/ // 执行sql语句的函数 void exeSql(char* sql) { MYSQL my_connection; /*数据库连接*/ int res; /*执行sql语句后的返回标志*/ MYSQL_RES* res_ptr; /*执行结果*/ MYSQL_ROW result_row; /*按行返回查询信息*/ int row, column; /* 定义行数,列数*/ mysql_init(&my_connection); if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) { printf("数据库连接成功!"); /*设置查询编码为 utf8, 支持中文*/ mysql_query(&my_connection, "set names utf8"); res = mysql_query(&my_connection, sql); if (res) { /*现在就代表执行失败了*/ printf("Error: mysql_query !\n"); /*不要忘了关闭连接*/ mysql_close(&my_connection); } else { /*现在就代表执行成功了*/ /*mysql_affected_rows会返回执行sql后影响的行数*/ printf("%d 行受到影响!\n", mysql_affected_rows(&my_connection)); // 把查询结果装入 res_ptr res_ptr = mysql_store_result(&my_connection); // 存在则输出 if (res_ptr) { // 获取行数,列数 row = mysql_num_rows(res_ptr); column = mysql_num_fields(res_ptr); // 执行输出结果,从第二行开始循环(第一行是字段名) for (int i = 1; i < row + 1; i++) { // 一行数据 result_row = mysql_fetch_row(res_ptr); for (int j = 0; j < column; j++) { printf("%s", result_row[j]); } } } /*不要忘了关闭连接*/ mysql_close(&my_connection); } } else { printf("数据库连接失败!"); } } int main(){ char sql[] = "create table test;"; exeSql(sql); getchar(); getchar(); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。