我装的是5.1版本,需要的头文件有
把需要的文件添加进去,然后再把 libmysql.lib放到项目目录里,文件在mysql安装目录 lib 下面.
#include "stdafx.h"
#include <iostream>
#include <winsock2.h>
#include "mysql.h"
//#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib,"libmysql.lib")
using namespace std;
int main(int argc, char* argv[])
{
mysql_library_init(NULL,0,0);
MYSQL mysql;
mysql_init(&mysql);
if(0==mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"utf8"))//设置字符集
{
cout << "设置字符集成功\n\n" <<endl;
}
if(!mysql_real_connect(&mysql,"localhost","root","kwgkwg","test",0,NULL,CLIENT_MULTI_STATEMENTS))//连接数据库
{
cout << "not connect mysql" << endl;
}else
{
cout << "welcome to mysql\n\n\n";
}
mysql_query(&mysql,"select * from demo1"); //执行SQL语句
MYSQL_RES *result=mysql_store_result(&mysql); //获取资源
int rowcount=mysql_num_rows(result); //获取记录数
unsigned int fieldcount=mysql_num_fields(result); //获取字段数
//cout << rowcount << endl;
MYSQL_FIELD *field=NULL; //字段
MYSQL_ROW row=NULL; //记录
while(row=mysql_fetch_row(result))
{
for(unsigned int i=0;i<fieldcount;i++)
{
field=mysql_fetch_field_direct(result,i);
cout<<field->name<<":"<<row[i] <<"\n";
}
}
mysql_free_result(result);
mysql_close(&mysql);
mysql_server_end();
mysql_library_end();
return 0;
}
C++访问 (直接调用C-API)
#include <iostream>
#include <windows.h>
#include <mysql.h>
#include <string>
static const char host[32] = "localhost";
static const char user[32] = "test";
static const char passwd[32] = "passwd";
static const char db[32] = "test";
/**
mysql> select * from t;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
mysql> delimiter //
mysql> create procedure get_t(in t1 int)
-> begin
-> select id from t where id=t1;
-> end
-> //
Query OK, 0 rows affected (0.05 sec)
mysql> call get_t(1);
-> //
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
*/
void test_more_results(MYSQL* h)
{
char str[512] = "insert into test_num values(101);insert into test_num values(122);commit;";
int r = mysql_real_query(h, str, strlen(str));
if (r)
{
const char * error = mysql_error(h);
std::cout<<"*** Connection Error " << error << std::endl;
}
do
{
MYSQL_RES* res = mysql_store_result(h);
mysql_free_result(res);
}
while ( (0 == mysql_next_result(h)) );
}
void test_proc_stmt(MYSQL* h)
{
MYSQL* mysql_ = h;
MYSQL_BIND bind;
MYSQL_BIND obind[1];
// test_more_results(mysql_);
MYSQL_STMT *hStmt = mysql_stmt_init(mysql_);
my_bool true_value= 1;
mysql_stmt_attr_set(hStmt, STMT_ATTR_UPDATE_MAX_LENGTH, (void*) &true_value);
char sql[] = "call get_t(?)";
//char sql[] = "select id from t where id=?";
if (mysql_stmt_prepare(hStmt, sql, strlen(sql)))
{
std::cout<<__LINE__<<": stmt prepare error: "<< (mysql_stmt_error(hStmt))<<std::endl;
mysql_stmt_reset(hStmt);
if (mysql_stmt_prepare(hStmt, sql, strlen(sql)))
{
std::cout<<__LINE__<<": stmt prepare error: "<< (mysql_stmt_error(hStmt))<<std::endl;
mysql_close(mysql_);
exit( -1);
}
}
int id = 1;
unsigned long id_len = 0;
memset(&bind, 0, sizeof(bind));
bind.buffer_type = FIELD_TYPE_LONG;
bind.buffer = (void*)&id;
bind.is_unsigned = true;
bind.length = &id_len;
// bind[0].buffer_length = sizeof(id);
// bind[0].is_null = 0;
if (mysql_stmt_bind_param(hStmt,(MYSQL_BIND*)(&bind)) != 0)
{
std::cout<<__LINE__<<": stmt prepare error: "<< (mysql_stmt_error(hStmt))<<std::endl;
mysql_close(mysql_);
exit( -1);
}
if (mysql_stmt_execute(hStmt) != 0)
{
std::cout<<__LINE__<<": stmt prepare error: "<< (mysql_stmt_error(hStmt))<<std::endl;
mysql_close(mysql_);
exit( -1);
}
int t2;
memset(obind, 0, sizeof(obind));
obind[0].buffer_type= MYSQL_TYPE_LONG;
obind[0].buffer= (char *)&t2;
obind[0].buffer_length = sizeof(t2);
if (mysql_stmt_bind_result(hStmt, (MYSQL_BIND*)&obind[0]) != 0)
{
std::cout<<__LINE__<<": stmt prepare error: "<< (mysql_stmt_error(hStmt))<<std::endl;
mysql_close(mysql_);
exit( -1);
}
if ( mysql_stmt_store_result(hStmt) != 0 )
{
std::cout<<__LINE__<<": stmt prepare error: "<< (mysql_stmt_error(hStmt))<<std::endl;
mysql_close(mysql_);
exit( -1);
}
int rows = mysql_stmt_num_rows(hStmt);
for (int i=0; i<rows; i++)
{
if (mysql_stmt_fetch(hStmt) == 0)
{
std::cout<<"id = "<<t2<<std::endl;
}
}
mysql_stmt_free_result(hStmt);
mysql_stmt_close(hStmt);
}
//
// Just for demo only.
//
int main()
{
MYSQL* mysql_ = NULL;
MYSQL_RES* result_ = NULL;
MYSQL_ROW row_;
mysql_ = mysql_init(mysql_);
// if (mysql_real_connect(mysql_, host, user, passwd, db, 3306, NULL, CLIENT_MULTI_STATEMENTS) == NULL)
if (mysql_real_connect(mysql_, host, user, passwd, db, 3306, NULL, CLIENT_MULTI_STATEMENTS) == NULL)
{
const char * error = mysql_error(mysql_);
std::cout<<"*** Connection Error " << error << std::endl;
return -1;
}
mysql_autocommit(mysql_, false);
std::string encodeStr = "set names 'gbk'";
mysql_real_query(mysql_, encodeStr.c_str(), encodeStr.size());
/*
const char* tmpTableName = "t"; // assume you are querying the table 't'
char str[512];
int cnt = 0;
sprintf(str,"select count(*) as cnt from %s", tmpTableName);
mysql_real_query(mysql_, str, strlen(str));
result_ = mysql_store_result(mysql_);
while (row_ = mysql_fetch_row(result_))
{
// get the field value
if (row_[0])
{
std::cout<<"count = "<<row_[0]<<std::endl;
// convert it into int
cnt = atoi(row_[0]);
std::cout<<"cnt value = "<<row_[0]<<std::endl;
}
}
mysql_free_result(result_);
test_more_results();
*/
test_proc_stmt(mysql_);
do
{
MYSQL_RES* res = mysql_store_result(mysql_);
mysql_free_result(res);
}
while ( (0 == mysql_next_result(mysql_)) );
test_proc_stmt(mysql_);
mysql_close(mysql_);
return 0;
}
这样就差不多了,大家可以根据需要选择。
# C++
# mysql
# C/C++ 连接MySql数据库的方法
# C++连接mysql数据库的两种方法小结
# C++连接使用MySQL的方法
# C++连接并使用MySQL数据库
# C++连接mysql数据库并读取数据的具体步骤
# C++连接mysql数据库(改进版)
# 的是
# 可以根据
# 再把
# 就差
# 安装目录
# 头文件
# 连接数据库
# 直接调用
# 不多了
# field
# mysql_num_fields
# fieldcount
# MYSQL_FIELD
# MYSQL_ROW
# mysql_fetch_row
# mysql_fetch_field_direct
# row
# mysql_free_result
# SQL
# MYSQL_RES
相关文章:
c# 服务器GC和工作站GC的区别和设置
如何在云指建站中生成FTP站点?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
如何在IIS中新建站点并解决端口绑定冲突?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
制作证书网站有哪些,全国城建培训中心证书查询官网?
高端企业智能建站程序:SEO优化与响应式模板定制开发
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
网站代码制作软件有哪些,如何生成自己网站的代码?
建站之家VIP精选网站模板与SEO优化教程整合指南
兔展官网 在线制作,怎样制作微信请帖?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
建站之星备案流程有哪些注意事项?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
名字制作网站免费,所有小说网站的名字?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
网站制作公司排行榜,抖音怎样做个人官方网站
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
建站168自助建站系统:快速模板定制与SEO优化指南
Android使用GridView实现日历的简单功能
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
孙琪峥织梦建站教程如何优化数据库安全?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
潮流网站制作头像软件下载,适合母子的网名有哪些?
MySQL查询结果复制到新表的方法(更新、插入)
如何在云虚拟主机上快速搭建个人网站?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
如何使用Golang安装API文档生成工具_快速生成接口文档
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
建站VPS选购需注意哪些关键参数?
如何用免费手机建站系统零基础打造专业网站?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
如何通过cPanel快速搭建网站?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
如何快速搭建支持数据库操作的智能建站平台?
如何用虚拟主机快速搭建网站?详细步骤解析
建站之星安装后如何配置SEO及设计样式?
制作网站怎么制作,*游戏网站怎么搭建?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
*请认真填写需求信息,我们会在24小时内与您取得联系。