PS:二者连接的过程主要参考这篇博客园文章,http://www.cnblogs.com/justinzhang/archive/2011/09/23/2185963.html

这篇博客园的文章中的代码已经被我改好,附到下面去了!

1.在C++和mysql连接编译遇到的第一个问题:

error LNK2019: 无法解析的外部符号 _mysql_real_connect@32,该符号在函数 _main 中被引用
error LNK2019: 无法解析的外部符号 _mysql_query@8,该符号在函数 _main 中被引用
error LNK2019: 无法解析的外部符号 _mysql_init@4,该符号在函数 _main 中被引用
error LNK2019: 无法解析的外部符号 _mysql_close@4,该符号在函数 _main 中被引用

解决方案:

这篇博客也阐述了.lib和.dll的区别,主要是VS2010 win32平台和Mysql的64位平台不兼容的问题。

http://blog.csdn.net/tspangle/article/details/43539721

2.无法启动该程序,因为计算机中缺少libmysql.dll

解决方案:

参考这篇百度知道:
http://zhidao.baidu.com/link?url=FQCpGjEqgdwTKO_QS1q0aaim5Opzcaze3W0UX4l1iYmxb84b8H__9ZsAHKc7XOpt5PYWVQ8h7FgI2kt_ODsB4q

需把libmysql.dll放到项目bin\Debug文件夹中

3.Unable to connect the database,check your configuration!

主要原因是对mysql_real_connet的参数传递错误

该函数原型是:

MYSQL *  STDCALL mysql_real_connect(MYSQL *mysql, const char *host,
        const char *user,
        const char *passwd,
        const char *db,
        unsigned int port,
        const char *unix_socket,
        unsigned long clientflag);

其中我的数据库的user="root",password="",哈哈,填写自己的就好啦,

db是建立的数据库的名字,我在mysql的命令窗口自己建立了一个mytest的数据库,路径为C:\ProgramData\MySQL\MySQL Server 5.7\Data

所以db="mytest"

其他的按照常规设置就好了,这几个是比较个性化的设置。

如果连接数据库的过程中出错了,可以查看C:\ProgramData\MySQL\MySQL Server 5.7\Data文件夹下的.err错误日志来查看错误原因,并且可以对症下药!

 #include <windows.h>
#include "stdio.h"
#include "winsock.h"
#include "mysql.h"
#pragma comment (lib, "libmysql.lib")
#pragma comment (lib, "mysqlclient.lib")
int main()
{ MYSQL * con; //= mysql_init((MYSQL*) 0);
MYSQL_RES *res;
MYSQL_ROW row;
char tmp[];
//database configuartion
char dbuser[]="root";
char dbpasswd[]=""; // it must be changed
char dbip[]="localhost";
char dbname[]="mytest";
char tablename[]="tab";
char *query=NULL; int x;
int y;
int rt;//return value
unsigned int t; int count = ; printf("input x,y\n");
scanf("%d,%d",&x,&y);
fflush(stdin);
printf("input over\n"); con = mysql_init((MYSQL*) );
//con = mysql_init(&mysql); if ( con !=NULL && mysql_real_connect(con,dbip,dbuser,dbpasswd,dbname,,NULL,) )
{
if (!mysql_select_db(con,dbname))
{
printf("Select successfully the database!\n");
con ->reconnect = ;
query = "set names \'GBK\'";
rt=mysql_real_query(con,query,strlen(query));
if (rt)
{
printf("Error making query: %s !!!\n",mysql_error(con));
}
else
{
printf("query %s succeed!\n",query);
}
}
}
else
{
MessageBoxA(NULL,"Unable to connect the database,check your configuration!","",NULL);
} sprintf(tmp,"insert into %s values(%s,%d,%d)",tablename,"null",x,y); //注意如何向具有自增字段的数据库中插入记录 rt=mysql_real_query(con,tmp,strlen(tmp));
if (rt)
{
printf("Error making query: %s !!!\n",mysql_error(con));
}
else
{
printf("%s executed!!!\n",tmp);
} sprintf(tmp,"select * from %s",tablename);
rt=mysql_real_query(con,tmp,strlen(tmp));
if (rt)
{
printf("Error making query: %s !!!\n",mysql_error(con));
}
else
{
printf("%s executed!!!\n",tmp);
}
res = mysql_store_result(con);//将结果保存在res结构体中 while(row = mysql_fetch_row(res))
{
for(t=;t<mysql_num_fields(res);t++)
{
printf("%s ",row[t]);
}
printf(".............\n");
count ++;
} printf("number of rows %d\n",count);
printf("mysql_free_result...\n");
mysql_free_result(res);
mysql_close(con);
return ;
}

mysql和VS2010 C++链接过程中出现的问题的更多相关文章

  1. 嵌入式C语言自我修养 09:链接过程中的强符号和弱符号

    9.1 属性声明:weak GNU C 通过 __atttribute__ 声明weak属性,可以将一个强符号转换为弱符号. 使用方法如下. void __attribute__((weak)) fu ...

  2. MySql数据库GROUP BY使用过程中的那些坑

    MySql数据库GROUP BY使用过程中的那些坑 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. 特别注意: group by 有一个原则,就是 select 后面的所有 ...

  3. seata服务端和客户端配置(使用nacos进行注册发现,使用mysql进行数据持久化),以及过程中可能会出现的问题与解决方案

    seata服务端和客户端配置(使用nacos进行注册发现,使用mysql进行数据持久化),以及过程中可能会出现的问题与解决方案 说明: 之所以只用nacos进行了注册与发现,因为seata使用naco ...

  4. 【图片+代码】:GCC 链接过程中的【重定位】过程分析

    作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). ...

  5. 我在MySQL免安装版使用过程中遇到的问题记录

    我的MySQL版本为:mysql-5.7.16-winx64 安装时间为:2016年5月10号 由于是免安装版,下载好压缩文件之后解压到特定目录下,再打开命令行运行几行命令即可. 在一次操作中,发现无 ...

  6. 数据库设计-Mysql数据库表设计的过程中几个关键点

    一.表设计过程中应该注意的数据类型 1)更小的通常更好 控制字节长度 2)使用合适的数据类型: 如tinyint只占8个位,char(1024)与varchar(1024)的对比,char用于类似定长 ...

  7. Windows系统安装MySQL详细教程和安装过程中问题汇总(命令安装),更新时间2021-12-8

    安装包下载 下载地址:https://dev.mysql.com/downloads/mysql/ 点击下载之后,可以选择注册Oracle账号,也可以跳过直接下载. 下载完成后,选择一个磁盘内放置并解 ...

  8. VS链接过程中与MSVCRT.lib冲突

    vs代码生成有/MT,/MTd,/Md,/MDd四个编译选项,分别代表多线程.多线程调试.多线程DLL.多线程调试DLL. 编译时引用的lib分别为libcmt.li.libcmtd.lib.msvc ...

  9. 我在MySQL免安装版使用过程中遇到的问题记录【二】

    跟上次问题不一样!这次是重新安装MySQL免安装版,各种文件搞对了还是错了也不清楚. 现在是:下载完安装包之后,按照现在的下方的代码,创建一个my-default.ini文件并放入下代码: [mysq ...

随机推荐

  1. application,session,cookie三者之间的区别和联系

    application:    程序全局变量对象,对每个用户每个页面都有效 session:    用户全局变量,对于该用户的所有操作过程都有效    session主要是在服务器端用,一般对客户端不 ...

  2. Sql Server 2012启动存储过程

    可以通过如下步骤创建 1.打开show advanced options reconfigure 2.打开scan for startup procs,使得sql server在启动时扫描需要运行的p ...

  3. C与C++

    有幸在某网站发现这篇文章,读罢,觉得蛮有道理,发来大家一起共勉之! 总是被同学们问到,如何学习C和C++才不茫然,才不是乱学,想了一下,这里给出一个总的回复. 一家之言,欢迎拍砖哈. 1.可以考虑先学 ...

  4. maven命令/依赖/聚合

    一,编写pom.xml   首先我们看一下pom.xml   <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...

  5. python 文件移动(shutil)

    # encoding=utf-8 # /home/bergus/tongbu/360共享/编程语言 # /home/bergus/桌面 # /home/bergus/test/hh import os ...

  6. App_Code

    App_Code,文件夹是·NET平台下.在创建网站时,系统为类自动放的位置.它位于Web应用程序根目录下,其存储所有应当作为应用程序的一部分动态编译的类文件.这些类文件自 动链接到应用程序,而不需要 ...

  7. safari的input问题

    切图网用户体验团队QUX在手机移动触屏web前端开发中碰到一个问题 — 纯css3定义的按钮在android安卓系统下显示正常,但是在苹果ios系统下,以ipad为例,ipad下呈现渐变和圆角状态 . ...

  8. 清理下NFC的基本概念

    移动支付这事情热了总归还是会回归理性,就如同之前的10几年间的几次轮回一样.字面上看,移动支付比支付大也不大可能,有相同,有扩展,有交集有不通才是. NFC这事情也是说了快十年了,真心希望它能回归到其 ...

  9. STM32F103控制两个步进电机按照一定转速比运动

    这个暑假没有回家,在学校准备九月份的电子设计竞赛.今天想给大家分享一下STM32定时器控制两个步进电机按照一定速度比转动的问题. 这次做的05年的电子设计竞赛题目,运动悬挂系统..本实验是控制两个步进 ...

  10. 在Eclipse中创建打开文件夹快捷键

    Run 展开如下菜单: Run ---- External Tools ---- External Tools Configurations 在 program 下面新建一个工具 在 Location ...