这里归纳了C API可使用的函数

函数

描述

mysql_affected_rows()

返回上次UPDATE、DELETE或INSERT查询更改/删除/插入的行数。

mysql_autocommit()

切换 autocommit模式,ON/OFF

mysql_change_user()

更改打开连接上的用户和数据库。

mysql_charset_name()

返回用于连接的默认字符集的名称。

mysql_close()

关闭服务器连接。

mysql_commit()

提交事务。

mysql_connect()

连接到MySQL服务器。该函数已不再被重视,使用mysql_real_connect()取代。

mysql_create_db()

创建数据库。该函数已不再被重视,使用SQL语句CREATE DATABASE取而代之。

mysql_data_seek()

在查询结果集中查找属性行编号。

mysql_debug()

用给定的字符串执行DBUG_PUSH。

mysql_drop_db()

撤销数据库。该函数已不再被重视,使用SQL语句DROP DATABASE取而代之。

mysql_dump_debug_info()

让服务器将调试信息写入日志。

mysql_eof()

确定是否读取了结果集的最后一行。该函数已不再被重视,可以使用mysql_errno()或mysql_error()取而代之。

mysql_errno()

返回上次调用的MySQL函数的错误编号。

mysql_error()

返回上次调用的MySQL函数的错误消息。

mysql_escape_string()

为了用在SQL语句中,对特殊字符进行转义处理。

mysql_fetch_field()

返回下一个表字段的类型。

mysql_fetch_field_direct()

给定字段编号,返回表字段的类型。

mysql_fetch_fields()

返回所有字段结构的数组。

mysql_fetch_lengths()

返回当前行中所有列的长度。

mysql_fetch_row()

从结果集中获取下一行

mysql_field_seek()

将列光标置于指定的列。

mysql_field_count()

返回上次执行语句的结果列的数目。

mysql_field_tell()

返回上次mysql_fetch_field()所使用字段光标的位置。

mysql_free_result()

释放结果集使用的内存。

mysql_get_client_info()

以字符串形式返回客户端版本信息。

mysql_get_client_version()

以整数形式返回客户端版本信息。

mysql_get_host_info()

返回描述连接的字符串。

mysql_get_server_version()

以整数形式返回服务器的版本号。

mysql_get_proto_info()

返回连接所使用的协议版本。

mysql_get_server_info()

返回服务器的版本号。

mysql_info()

返回关于最近所执行查询的信息。

mysql_init()

获取或初始化MYSQL结构。

mysql_insert_id()

返回上一个查询为AUTO_INCREMENT列生成的ID。

mysql_kill()

杀死给定的线程。

mysql_library_end()

最终确定MySQL C API库。

mysql_library_init()

初始化MySQL C API库。

mysql_list_dbs()

返回与简单正则表达式匹配的数据库名称。

mysql_list_fields()

返回与简单正则表达式匹配的字段名称。

mysql_list_processes()

返回当前服务器线程的列表。

mysql_list_tables()

返回与简单正则表达式匹配的表名。

mysql_more_results()

检查是否还存在其他结果。

mysql_next_result()

在多语句执行过程中返回/初始化下一个结果。

mysql_num_fields()

返回结果集中的列数。

mysql_num_rows()

返回结果集中的行数。

mysql_options()

为mysql_connect()设置连接选项。

mysql_ping()

检查与服务器的连接是否工作,如有必要重新连接。

mysql_query()

执行指定为“以Null终结的字符串”的SQL查询。

mysql_real_connect()

连接到MySQL服务器。

mysql_real_escape_string()

考虑到连接的当前字符集,为了在SQL语句中使用,对字符串中的特殊字符进行转义处理。

mysql_real_query()

执行指定为计数字符串的SQL查询。

mysql_refresh()

刷新或复位表和高速缓冲。

mysql_reload()

通知服务器再次加载授权表。

mysql_rollback()

回滚事务。

mysql_row_seek()

使用从mysql_row_tell()返回的值,查找结果集中的行偏移。

mysql_row_tell()

返回行光标位置。

mysql_select_db()

选择数据库。

mysql_server_end()

最终确定嵌入式服务器库。

mysql_server_init()

初始化嵌入式服务器库。

mysql_set_server_option()

为连接设置选项(如多语句)。

mysql_sqlstate()

返回关于上一个错误的SQLSTATE错误代码。

mysql_shutdown()

关闭数据库服务器。

mysql_stat()

以字符串形式返回服务器状态。

mysql_store_result()

检索完整的结果集至客户端。

mysql_thread_id()

返回当前线程ID。

mysql_thread_safe()

如果客户端已编译为线程安全的,返回1。

mysql_use_result()

初始化逐行的结果集检索。

mysql_warning_count()

返回上一个SQL语句的告警数。

做了下简单的封装

头文件

 1 #ifndef __MYMYSQL_H__
 2 #define __MYMYSQL_H__
 3 #include <WinSock2.h>
 4 #include <mysql.h>
 5 #pragma comment(lib,"libmysql.lib")
 6 #define SZCHARSIZE 100
 7 typedef struct _tagMysqlInfo
 8 {
 9     char host[SZCHARSIZE];    //主机
10      char user[SZCHARSIZE];    //用户名
11      char passwd[SZCHARSIZE];    //密码
12      char db[SZCHARSIZE];    //数据库
13      UINT port;            //端口号
14      char unix_socket[SZCHARSIZE];    //如果unix_socket不是NULL,该字符串描述了应使用的套接字或命名管道。注意,“host”参数决定了连接的类型。
15      DWORD client_flag;    // client_flag的值通常为0
16 }MYSQLINFO,*PMYSQLINFO;
17 class CMyMysql
18 {
19 public:
20     CMyMysql(void);
21     BOOL connect(const MYSQLINFO);    //连接成功返回true 失败返回false
22     BOOL query(const char*);            //查询mysql语句
23     my_ulonglong GetresultLine();                //获取查询到的行数
24     MYSQL* GetMysqlPtr();            //获取mysql指针
25     MYSQL_RES* GetMysqlresPtr();    //获取mysqlres指针
26     ~CMyMysql(void);
27 private:
28     MYSQL* m_mYsqlPtr;    //mysql 指针
29     MYSQL_RES* m_mYsqlres;    //mysql 结果集指针
30 };
31 #endif //__MYMYSQL_H__

cpp文件

 1 #include "MyMysql.h"
 2
 3 CMyMysql::CMyMysql(void)
 4     :m_mYsqlPtr(NULL)
 5 {
 6     m_mYsqlPtr = mysql_init(NULL);
 7 }
 8
 9
10 CMyMysql::~CMyMysql(void)
11 {
12     if (m_mYsqlPtr)
13         mysql_close(m_mYsqlPtr);
14     if (m_mYsqlres)
15         mysql_free_result(m_mYsqlres);
16 }
17 BOOL CMyMysql::connect(const MYSQLINFO mysqlInfo)
18 {
19     if(!mysql_real_connect(m_mYsqlPtr,mysqlInfo.host,mysqlInfo.user,mysqlInfo.passwd,mysqlInfo.db,mysqlInfo.port,mysqlInfo.unix_socket,mysqlInfo.client_flag))
20         return FALSE;
21     else
22         return TRUE;
23 }
24 BOOL CMyMysql::query(const char* szSql)
25 {
26     if(!strlen(szSql))return FALSE;
27     if(mysql_query(m_mYsqlPtr,szSql))
28         return FALSE;
29     else
30         return TRUE;
31 }
32 my_ulonglong CMyMysql::GetresultLine()
33 {
34     m_mYsqlres = mysql_store_result(m_mYsqlPtr);
35     if(!m_mYsqlres)return NULL;
36     return mysql_num_rows(m_mYsqlres);
37 }
38 MYSQL* CMyMysql::GetMysqlPtr()
39 {
40     return m_mYsqlPtr;
41 }
42 MYSQL_RES* CMyMysql::GetMysqlresPtr()
43 {
44     return m_mYsqlres;
45 }

简单的调用例子用的MFC

 1 void CMysqlDemoDlg::OnBnClickedButton1()
 2 {
 3     CMyMysql * mYSQL = new CMyMysql();
 4     MYSQLINFO mysqlInfo;
 5     ZeroMemory(&mysqlInfo,sizeof(MYSQLINFO));
 6     CopyMemory(mysqlInfo.host,"localhost",_tcslen("localhost"));
 7     CopyMemory(mysqlInfo.user,"root",_tcslen("root"));
 8     CopyMemory(mysqlInfo.passwd,"123456",_tcslen("123456"));
 9     mysqlInfo.port =3306;
10     if (!mYSQL->connect(mysqlInfo))
11     {
12         AfxMessageBox("连接数据库失败!\r\n");
13         delete mYSQL;
14         return ;
15     }
16     if (mysql_set_character_set(mYSQL->GetMysqlPtr(),"gbk"))
17     {
18         AfxMessageBox("设置默认字符失败!\r\n");
19         delete mYSQL;
20
21     }
22     if (mysql_select_db(mYSQL->GetMysqlPtr(),"ecshop"))
23     {
24         AfxMessageBox("选择数据库失败!\r\n");
25         delete mYSQL;
26     }
27     if(!mYSQL->query("select * from ecs_admin_user;"))
28     {
29         AfxMessageBox("查询失败!\r\n");
30         delete mYSQL;
31     }
32     my_ulonglong Line = mYSQL->GetresultLine();
33     MYSQL_FIELD* fd = NULL;
34     CString str;
35     while (fd = mysql_fetch_field(mYSQL->GetMysqlresPtr()))
36     {
37         str+= fd->name;
38         str+="\r\n";
39     }
40     SetDlgItemText(IDC_EDIT1,str);
41     MYSQL_ROW  rows;
42     str = "";
43     UINT  listSize = mysql_num_fields(mYSQL->GetMysqlresPtr());
44     while(rows = mysql_fetch_row(mYSQL->GetMysqlresPtr()))
45     {
46         for (UINT i = 0;i<listSize;i++)
47         {
48             str+= rows[i];
49         }
50         str+="\r\n";
51     }
52     SetDlgItemText(IDC_EDIT2,str);
53     delete mYSQL;
54 }

转载于:https://www.cnblogs.com/guolongzheng/p/7306856.html

vc调用mysql数据库操作例子相关推荐

  1. ajax连mysql数据库_AJAX调用mysql数据库简单例子

    地址: 用户: 密码: function a(){ var cont=$("input").serialize(); $.ajax({ url:"7.php", ...

  2. c语言连接数据库例子,c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual help).doc...

    这是精心收集的精品经典资料,值得下载保存阅读! c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual h ...

  3. php mysql 数据库操作类_php mysql数据库操作类

    分享一个本人一直在使用的一个mysql数据库操作类,比较初级,自己给别人做web网站的时候一直用的这个类,这个也是之前刚开始学习php的时候在网上找到的一个mysql数据库操作类,后来自己改了一些,比 ...

  4. freecplus框架-MySQL数据库操作

    文章目录 一.源代码说明 二.概述 三.connection类 四.sqlstatement类 五.程序流程 1.无结果集SQL的程序的流程 2.有结果集SQL的程序的流程 六.示例程序 1.创建超女 ...

  5. python操作数据库的几种方法_python对mysql数据库操作的三种不同方式

    原标题:python对mysql数据库操作的三种不同方式 |转载自:博客园 |原文链接:http://www.cnblogs.com/mryrs/p/6951008.html 先要说一下,在这个暑期如 ...

  6. 【数据库】(三)-- mysql 数据库操作应用

    [数据库](三)-- mysql 数据库操作应用 操作说明 使用 navicat 针对 mysql 进行 sql 的使用,mysql 运行在本地的 docker 环境的应用容器中. 语法和关键字什么的 ...

  7. Hello Go(十八)、Go语言MySQL数据库操作

    一.MySQL数据库驱动 1.MySQL数据库驱动简介 Go语言官方没有实现MySQL数据库驱动,常用的开源MySQL数据库驱动实现如下: (1)Go MySQL Driver Go MySQL Dr ...

  8. mysql db模块下载_易语言MySql数据库操作类V1.0模块源码

    易语言MySql数据库操作类V1.0模块源码 易语言MySql数据库操作类V1.0模块源码 系统结构:MySql数据库连接类_测试子程序,置连接选项,连接,关闭,是否已连接,取连接句柄,置连接句柄,执 ...

  9. 使用C语言调用mysql数据库编程实战以及技巧

    今天编写使用C语言调用mysql数据库编程实战以及技巧,为其他IT同行作为参考,当然有错误可以留言,共同学习. 一.mysql数据库的C语言常用接口API 1.首先当然是链接数据库mysql_real ...

最新文章

  1. SAP 关于EWM的WT增强简介
  2. 高斯旋转热源与双椭球热源_电力分公司:多措并举保证供暖质量效益双提升
  3. python 模板匹配多个物体
  4. Android Stdio使用技巧
  5. 可交互的 Attention 可视化工具!我的Transformer可解释性有救了?
  6. 12 个非常有用的 JavaScript 技巧
  7. java折行_Java源代码的折行规则
  8. SpringMVC 注解 @Scope、@PostConstruct、@PreDestroy、@ComponentScan
  9. 【python教程入门学习】Python爬虫入门学习:网络爬虫是什么
  10. UML与Rational Rose
  11. DataList控件的使用
  12. 《JavaScript高级程序设计》五、引用类型(基本包装类型)
  13. 消化系统疾病病人的护理题库
  14. 跨集群复制(CCR)
  15. 快手坐拥3亿用户,想成为平行世界里的Snapchat,然后呢
  16. ai人工智能课程百度云_云AI就像核电
  17. [计算机网络期末复习_例题]有限带宽、有热噪声信道的最大数据传输速率(香农定理)
  18. FishC笔记—23,24 讲 递归:这帮小兔崽子,汉诺塔
  19. 什么是深度学习以及它是如何工作的?
  20. 淮南计算机竞赛培训,关于公布2019年田家庵区中小学电脑制作比赛等三项比赛评比结果的通知...

热门文章

  1. iOS - 手动添加新的字体
  2. mysql 对多列进行排序 分组,尝试从多列全文mysql搜索中对结果进行排序
  3. java class修改_【原创】Java基础之简单修改jar包中的class
  4. install python-pip_yum install python-pip:没有包python-pip可用
  5. mysql 排名_微服务架构下,如何利用Mysql的limit配合orderby进行排名统计
  6. 超适合新手的Oracle查询语句
  7. python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态
  8. 天龙源码框架分析_MySQL8-InnoDB总体架构和运行机制的系统分析(上)
  9. asc desc排序_HIVE的学习之路(六)Hive的分组Join排序
  10. cors漏洞 复现_Jsonp跨域漏洞浅析