vscode c++连接mysql

2023-05-16

因为踩坑太多所以写下该篇博客

首先要下载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();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vscode c++连接mysql 的相关文章

  • mysql 详细查询字符串,如通配符

    不知道如何标题我的问题 哈哈 下面是我需要的 我的数据库中的值如下所示 test example 1 test example 2 test example TD 1 这些值的长度可以不同 test example 只是一个示例 某些值将具
  • Errno 121,写入或更新时出现重复密钥?

    SET OLD UNIQUE CHECKS UNIQUE CHECKS UNIQUE CHECKS 0 SET OLD FOREIGN KEY CHECKS FOREIGN KEY CHECKS FOREIGN KEY CHECKS 0 S
  • PHP 和 MySQL 的重音字符错误

    我的问题是 直接通过 PHP 编写的内容是正确重音的 但是当重音单词来自 MySQL 时 字母会像这样 我尝试使用html charset as ISO 8859 1它修复了 MySQL 字母 但破坏了其他字母 解决这一切的一种方法是设置我
  • 根据最大值连接表

    这是我正在谈论的内容的一个简化示例 Table students exam results id name id student id score date 1 Jim 1 1 73 8 1 09 2 Joe 2 1 67 9 2 09 3
  • MySQL SELECT OpenCarts 数据库中的重复行

    只是玩一下 OpenCart DB 看看我是否能学到一些东西 如果我使用以下SELECT结果返回重复的行 SELECT DISTINCT p product id AS pid p model AS modelo SUBSTRING p m
  • 从 MySQL 将 500 万行加载到 Pandas 中

    我在 本地 网络上的 MySQL 数据库中有 500 万行 连接速度非常快 而不是在互联网上 与数据库的连接工作正常 但如果我尝试这样做 f pd read sql query SELECT FROM mytable engine inde
  • 用教义 2 DBAL 连接子查询

    我正在重构 Zend 框架2应用程序使用学说 2 5 DBAL 而不是 Zend DB ZF1 我有以下 Zend Db 查询 subSelect db gt select gt from user survey status entrie
  • 连接两个表而不返回不需要的行

    我的表结构如下所示 tbl users tbl issues userid real name issueid assignedid creatorid 1 test 1 1 1 1 2 test 2 2 1
  • 使用 MySQL 的 CURDATE() 或 PHP 的 date() 更快?

    使用mysql查询是不是更快 SELECT CURDATE as today 或 PHP 语句 curdate date Y m d 同样的答案是否适用于使用date VS MySQL 的NOW and CURTIME 如果您只是执行查询以
  • MySQL InnoDB引擎是否对只读事务运行任何性能优化

    根据参考文档 只读事务标志可能会提示存储引擎运行一些优化 设置会话事务只读 如果事务访问模式设置为 READ ONLY 则对表进行更改 被禁止 这可能使存储引擎能够提高性能 不允许写入时可能进行的改进 InnoDB引擎是否对只读事务运行这样
  • Magento - 无法重新索引产品价格 - 外键约束失败

    我最近刚刚将我的 magento 商店从 1 4 2 升级到 1 7 0 2 升级进行得很顺利 但是当我尝试在升级后重新索引数据时 产品价格失败了 我尝试过使用php shell indexer php reindexall来自 SSH 它
  • 如何使用Python3.4在tornado中进行异步mysql操作?

    我现在使用Python3 4 我想在Tornado中使用异步mysql客户端 我已经发现torndb https github com bdarnell torndb但在阅读其源代码后 我认为它无法进行异步mysql操作 因为它只是封装了M
  • MySQL 组合两个查询

    我有两个 MySQL 查询 QUERY SELECT sodnik 1 FROM prihodnji krog WHERE file id 8778 AND sodnik 1 UNION SELECT sodnik 2 FROM priho
  • 使用表白名单选项更新 Debezium MySQL 连接器

    我正在使用 Debezium 0 7 5 MySQL 连接器 并且我试图了解如果我想使用以下选项更新此配置 最好的方法是什么table whitelist 假设我创建了一个连接器 如下所示 curl i X POST H Accept ap
  • mysql时间比较

    我有 job start 和 job end 时间 timediff 会给我时间差 现在我想看看这项工作是否花费了超过 2 小时 30 分钟 我如何比较它 如果我这样做 我会收到错误 timediff job start job end g
  • 迁移问题:MS SQL > MySQL:插入缓冲区内存

    我在使用 MySQL Workbench 上的内置迁移工具时遇到问题 我正在将一个非常大的数据库从 MS SQL 2014 迁移到 MySQL MS SQL 服务器本地部署在我的 Windows 8 1 桌面上 MySQL 服务器在我的网络
  • “create_date”时间戳字段的默认值无效

    我有以下 sql 创建语句 mysql gt CREATE TABLE IF NOT EXISTS erp je menus gt id INT 11 NOT NULL AUTO INCREMENT gt name VARCHAR 100
  • 如何修复“未知变量'sql-mode = ANSI'”?

    使用 MySQL 5 5 27 在 my cnf 中我有 mysql sql mode ANSI 启动 mysql 控制台后我得到 unknown variable sql mode TRADITIONAL MySQL 文档服务器 SQL
  • 具有“日期之间”的 CakePHP 模型

    我有一个很大的数据集 超过十亿行 数据在数据库中按日期分区 因此 我的查询工具必须在每个查询上指定一个 SQL Between 子句 否则它将必须扫描每个分区 而且 它会在返回之前超时 所以 我的问题是 分区的数据库中的字段是日期 使用 C
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐