C++连接并使用MySQL数据库


当前第2页 返回上一页

示例程序,自己消化,包含的API不懂就Google

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<Windows.h>
#include<WinSock.h>
#include<mysql.h>


using namespace std;
#pragma comment(lib,"libmysql.lib")
#pragma comment(lib,"wsock32.lib")
MYSQL *mysql = new MYSQL; //mysql连接 
MYSQL_FIELD *fd; //字段列数组 
char field[32][32]; //存字段名二维数组 
MYSQL_RES *res; //这个结构代表返回行的一个查询结果集 
MYSQL_ROW column; //一个行数据的类型安全(type-safe)的表示,表示数据行的列 
char query[150]; //查询语句 

bool ConnectDatabase();
bool QueryDatabase1();
//bool QueryDatabase2();
int main()
{
 ConnectDatabase();
 QueryDatabase1();
 //QueryDatabase2();
 system("pause");
 return 0;
}


bool ConnectDatabase()
{
 //初始化mysql 
 mysql_init(mysql);
 //返回false则连接失败,返回true则连接成功 
 if (!(mysql_real_connect(mysql, "localhost", "root", "123456", "company", 0, NULL, 0))) //中间分别是主机,用户名,密码,数据库名,端口号(可以写默认0或者3306等),可以先写成参数再传进去 
 {
  printf("Error connecting to database:%s\n", mysql_error(mysql));
  return false;
 }
 else
 {
  printf("Connected...\n");
  return true;
 }
 return true;
}

bool QueryDatabase1()
{
 sprintf_s(query, "select * from t_dept"); //执行查询语句,这里是查询所有,user是表名,不用加引号,用strcpy也可以 
 mysql_query(mysql, "set names gbk"); //设置编码格式(SET NAMES GBK也行),否则cmd下中文乱码 
 //返回0 查询成功,返回1查询失败 
 if (mysql_query(mysql, query)) //执行SQL语句
 {
  printf("Query failed (%s)\n", mysql_error(mysql));
  return false;
 }
 else
 {
  printf("query success\n");
 }
 //获取结果集 
 if (!(res = mysql_store_result(mysql))) //获得sql语句结束后返回的结果集 
 {
  printf("Couldn't get result from %s\n", mysql_error(mysql));
  return false;
 }

 //打印数据行数 
 printf("number of dataline returned: %d\n", mysql_affected_rows(mysql));

 //获取字段的信息 
 char *str_field[32]; //定义一个字符串数组存储字段信息 
 for (int i = 0; i<4; i++) //在已知字段数量的情况下获取字段名 
 {
  str_field[i] = mysql_fetch_field(res)->name;
 }
 for (int i = 0; i<4; i++) //打印字段 
  printf("%10s\t", str_field[i]);
 printf("\n");
 //打印获取的数据 
 while (column = mysql_fetch_row(res)) //在已知字段数量情况下,获取并打印下一行 
 {
  printf("%10s\t%10s\t%10s\t%10s\n", column[0], column[1], column[2], column[3]); //column是列数组 
 }
 return true;
}

//bool QueryDatabase2()
//{
// mysql_query(mysql, "set names gbk");
// //返回0 查询成功,返回1查询失败 
// if (mysql_query(mysql, "select * from user")) //执行SQL语句 
// {
//  printf("Query failed (%s)\n", mysql_error(mysql));
//  return false;
// }
// else
// {
//  printf("query success\n");
// }
// res = mysql_store_result(mysql);
// //打印数据行数 
// printf("number of dataline returned: %d\n", mysql_affected_rows(mysql));
// for (int i = 0; fd = mysql_fetch_field(res); i++) //获取字段名 
//  strcpy(field[i], fd->name);
// int j = mysql_num_fields(res);//获取列数 
// for (int i = 0; i<j; i++)//打印字段 
//  printf("%10s\t", field[i]);
// printf("\n");
// while (column = mysql_fetch_row(res))
// {
//  for (int i = 0; i<j; i++)
//   printf("%10s\t", column[i]);
//  printf("\n");
// }
// return true;
//
//}

更多相关Mysql内容来自木庄网络博客


标签:Mysql

返回前面的内容

相关阅读 >>

mysql中的乐观锁,悲观锁和mvcc全面解析

实例详解阿里云下配置mysql远程连接步骤

mysql中exists、in及any的基本用法

mysql中表的删除操作

mysql汇总和分组数据

mysql存储过程中游标如何遍历

c++连接使用mysql的方法

mysql5.5.27安装图文教程

mysql常用函数大全

mysql对数据库操作(创建、选择、删除)

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...