C API 连接MYSQL

时间:2023-02-27 14:32:16
 #include <iostream>
#include <mysql.h>
#include <string> #include <assert.h> int main()
{
// MYSQL 初始化
MYSQL *ms_conn = mysql_init(NULL);
if (ms_conn == NULL)
{
std::cout << "Error: mysql_init failed." << std::endl;
return ;
}
std::cout << "Info: mysql_init success." << std::endl; // 连接到MYSQL 数据库服务器,最后参数CLIENT_MULTI_STATEMENTS 指定SQL 可以同时多条。
MYSQL *ms_temp = NULL;
ms_temp = mysql_real_connect(ms_conn, "localhost", "root", "123456sx",
"suyh", , NULL, CLIENT_MULTI_STATEMENTS);
if (ms_temp == NULL)
{
std::cout << "Error: mysql_real_connect() failed." << std::endl;
mysql_close(ms_conn), ms_conn = NULL;
return ;
}
std::cout << "Info: mysql_real_connect() succect." << std::endl; std::string str_sqls = "";
// str_sqls += "SELECT * FROM player_data WHERE id = 100000;";
// str_sqls += "SELECT * FROM player_data WHERE id = 100001;";
str_sqls += "SELECT * FROM player_data WHERE id = 100002"; // 执行SQL 语句
int res = ;
res = mysql_real_query(ms_conn, str_sqls.c_str(), str_sqls.size());
if (res != )
{
std::cout << "Info: query failed, sql: " << str_sqls.c_str() << std::endl;
mysql_close(ms_conn), ms_conn = NULL;
return ;
}
std::cout << "Info: query success." << std::endl; do
{
// 取出查询结果
MYSQL_RES *ms_res = mysql_store_result(ms_conn);
assert(ms_res != NULL); // 结果集中的字段个数
unsigned int field_num = mysql_num_fields(ms_res);
std::cout << "fileds number is " << field_num << std::endl; // 每个字段的结构
MYSQL_FIELD* field = mysql_fetch_field(ms_res);
assert(field != NULL); // 取出这个结果集中的结果
MYSQL_ROW row_data = NULL; // typedef char ** MYSQL_ROW;
while ()
{
row_data = mysql_fetch_row(ms_res);
if (row_data == NULL)
break; // 结果集中已无数据 // 一行结果中每个字段的字符数
unsigned long *field_lens = mysql_fetch_lengths(ms_res);
assert(field_lens != NULL);
for (int i = ; i < field_num; ++i)
{
/*
std::cout << "field_lens[" << i << "] = " << field_lens[i]
<< ", value is " << row_data[i] << std::endl;
*/
std::cout << "field name: " << field[i].name;
if (row_data[i] == NULL)
std::cout << ", value is NULL" << std::endl;
else
// std::cout << ", value is " << row_data[i] << std::endl;
std::cout << ", value is NOT NULL" << std::endl;
} // ... // 处理结果
}
} while (mysql_next_result(ms_conn) == ); mysql_close(ms_conn), ms_conn = NULL;
return ;
}

C API 连接MYSQL的更多相关文章

  1. C Mysql API连接Mysql

    最近都在查看MYsql C API文档,也遇到了很多问题,下面来简单的做一个总结. mysql多线程问题 mysql多线程处理不好,经常会发生coredump,见使用Mysql出core一文. 单线程 ...

  2. C API 连接MySQL及批量插入

    CMySQLMgr.h: #ifndef _CMYSQLMGR_H_ #define _CMYSQLMGR_H_ #include <iostream> #include "my ...

  3. VC&plus;&plus;通过API连接MySQL

    1.  首先安装MySQL数据库server,本文安装的是mysql-installer-community-5.6.10.1.msi这个版本号.至于各个版本号有什么不同,不在这里说明. 例如以下的默 ...

  4. C&plus;&plus;连接mysql的两种方式&lpar;ADO连接和mysql api连接&rpar;

    一.ADO连接mysql 1.安装mysql-5.5.20-win32.msi和mysql-connector-odbc-5.3.4-win32.msi(一般两个安装程序要匹配,否则可能连接不上)  ...

  5. Vusual C&plus;&plus;连接Mysql和从MySql中取出数据的API介绍

    .1 mysql_real_connect() 2.1.1 函数原型: MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const ...

  6. c&plus;&plus;连接mysql数据库(使用mysql api方式,环境VS2013&plus;MYSQL5&period;6&rpar;

    转载请注明出处,原文地址http://www.cnblogs.com/zenki-kong/p/4382657.html 刚开始写博客,博主还只是个大三汪,学艺不精,如有错误还请前辈指出(>^ω ...

  7. C&plus;&plus; API方式连接mysql数据库实现增删改查

    这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...

  8. c&sol;c&plus;&plus;连接mysql数据库设置及乱码问题(vs2013连接mysql数据库,使用Mysql API操作数据库)

    我的安装环境: (1)vs2013(32位版) (vs2013只有32位的 没有64位的,但是它可以编译出64位的程序)  : (2)mysql-5.7.15(64位) vs2013中的设置(按步骤来 ...

  9. docker 创建&period;netcore2&period;2 api容器 以及连接mysql容器

    1]环境说明 操作系统:Window 10 专业版 开发工具 Vs2019专业版 Docker:  Docker for Windows  docker在windows上安装完毕之后可以看到 2]拉取 ...

随机推荐

  1. java提高篇&lpar;九&rpar;-----实现多重继承

    多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承.有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的设计,这个时候我们往往需 ...

  2. Swift - 访问通讯录-使用AddressBook&period;framework和AddressBookUI&period;framework框架实现

    1,通讯录访问介绍 通讯录(或叫地址簿,电话簿)是一个数据库,里面储存了联系人的相关信息.要实现访问通讯录有如下两种方式: (1)AddressBook.framework框架 : 没有界面,通过代码 ...

  3. 学习c&plus;&plus;

    慢慢的滑向无边无际的没有回头路的程序猿道路.坚持就是胜利. 致渣渣

  4. JSR 303 - Bean Validation 介绍及最佳实践

    JSR 303 - Bean Validation 介绍及最佳实践 JSR 303 – Bean Validation 是一个数据验证的规范,2009 年 11 月确定最终方案.2009 年 12 月 ...

  5. java四大名著

    java编程思想effective Javajava核心技术java编程语言 外加:  深入理解java虚拟机 自己动手写java虚拟机 java并发编程的艺术 java常用算法手册 其他计算机需要看 ...

  6. 【tarjan】BZOJ 1051&colon;受欢迎的牛

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3134  Solved: 1642[Submit][Sta ...

  7. pip 更改国内镜像

    2 pip 更改国内镜像 pip 默认不使用国内镜像,但是我们可以自己设置 -[pypi 镜像使用帮助] 临时使用 pip install -i https://pypi.tuna.tsinghua. ...

  8. IE9&plus;下如何让input的placeholder样式生效

    :-ms-input-placeholder.el-input__inner { color: #97a8be;}:-ms-input-placeholder.el-textarea__inner{ ...

  9. gitlab webhook php exec 调用 shell 脚本。shell 脚本中调用 git pull 命令无法执行。

    情况如下: 我在ubuntu server 14.04 上面安装了gitlab,来托管项目代码.然后想通过gitlab的web hook 功能来做测试服务器代码自动化更新代码功能.现在遇到一个问题:就 ...

  10. chrome主页被hao123篡改,怎么改回来?

    这两天因为下载个别小程序又把我的chrome的主页给篡改了,由于我现在使用的是任务栏快捷方式,没法右键属性,但我想应该和桌面快捷方式是一个道理,于是我找到任务栏文件夹C:\Users\Administ ...