这里归纳了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语句的告警数。

做了下简单的封装

头文件

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

cpp文件

 #include "MyMysql.h"

 CMyMysql::CMyMysql(void)
:m_mYsqlPtr(NULL)
{
m_mYsqlPtr = mysql_init(NULL);
} CMyMysql::~CMyMysql(void)
{
if (m_mYsqlPtr)
mysql_close(m_mYsqlPtr);
if (m_mYsqlres)
mysql_free_result(m_mYsqlres);
}
BOOL CMyMysql::connect(const MYSQLINFO mysqlInfo)
{
if(!mysql_real_connect(m_mYsqlPtr,mysqlInfo.host,mysqlInfo.user,mysqlInfo.passwd,mysqlInfo.db,mysqlInfo.port,mysqlInfo.unix_socket,mysqlInfo.client_flag))
return FALSE;
else
return TRUE;
}
BOOL CMyMysql::query(const char* szSql)
{
if(!strlen(szSql))return FALSE;
if(mysql_query(m_mYsqlPtr,szSql))
return FALSE;
else
return TRUE;
}
my_ulonglong CMyMysql::GetresultLine()
{
m_mYsqlres = mysql_store_result(m_mYsqlPtr);
if(!m_mYsqlres)return NULL;
return mysql_num_rows(m_mYsqlres);
}
MYSQL* CMyMysql::GetMysqlPtr()
{
return m_mYsqlPtr;
}
MYSQL_RES* CMyMysql::GetMysqlresPtr()
{
return m_mYsqlres;
}

简单的调用例子用的MFC

 void CMysqlDemoDlg::OnBnClickedButton1()
{
CMyMysql * mYSQL = new CMyMysql();
MYSQLINFO mysqlInfo;
ZeroMemory(&mysqlInfo,sizeof(MYSQLINFO));
CopyMemory(mysqlInfo.host,"localhost",_tcslen("localhost"));
CopyMemory(mysqlInfo.user,"root",_tcslen("root"));
CopyMemory(mysqlInfo.passwd,"",_tcslen(""));
mysqlInfo.port =;
if (!mYSQL->connect(mysqlInfo))
{
AfxMessageBox("连接数据库失败!\r\n");
delete mYSQL;
return ;
}
if (mysql_set_character_set(mYSQL->GetMysqlPtr(),"gbk"))
{
AfxMessageBox("设置默认字符失败!\r\n");
delete mYSQL; }
if (mysql_select_db(mYSQL->GetMysqlPtr(),"ecshop"))
{
AfxMessageBox("选择数据库失败!\r\n");
delete mYSQL;
}
if(!mYSQL->query("select * from ecs_admin_user;"))
{
AfxMessageBox("查询失败!\r\n");
delete mYSQL;
}
my_ulonglong Line = mYSQL->GetresultLine();
MYSQL_FIELD* fd = NULL;
CString str;
while (fd = mysql_fetch_field(mYSQL->GetMysqlresPtr()))
{
str+= fd->name;
str+="\r\n";
}
SetDlgItemText(IDC_EDIT1,str);
MYSQL_ROW rows;
str = "";
UINT listSize = mysql_num_fields(mYSQL->GetMysqlresPtr());
while(rows = mysql_fetch_row(mYSQL->GetMysqlresPtr()))
{
for (UINT i = ;i<listSize;i++)
{
str+= rows[i];
}
str+="\r\n";
}
SetDlgItemText(IDC_EDIT2,str);
delete mYSQL;
}

vc调用mysql数据库操作例子的更多相关文章

  1. php MySQL数据库操作类源代码

    php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...

  2. 设计模式 - 单例模式mysql数据库操作类

    待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php ...

  3. VC与ADO数据库操作

    VC与ADO数据库操作 学研部的同志们,大家好! 想开一次学习会,实习时间冲突了,只好把文档发给大家看了.重点推荐李振龙的BMP读图教程! 尤其是大三GIS班的同志,注意了,可能实习用得上的! 一.A ...

  4. Python/MySQL(四、MySQL数据库操作)

    Python/MySQL(四.MySQL数据库操作) 一.数据库条件语句: case when id>9 then ture else false 二.三元运算: if(isnull(xx)0, ...

  5. 新手学python(2):C语言调用完成数据库操作

    继续介绍本人的python学习过程.本节介绍如何利用python调用c代码.内容还是基于音乐信息提取的过程,架构如图一.Python调用c实现的功能是利用python访问c语言完成mysql数据库操作 ...

  6. Java通过JDBC 进行MySQL数据库操作

    转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...

  7. Python进行MySQL数据库操作

    最近开始玩Python,慢慢开始喜欢上它了,以前都是用shell来实现一些自动化或者监控的操作,现在用Python来实现,感觉更棒,Python是一门很强大的面向对象语言,所以作为一个运维DBA或者运 ...

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

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

  9. (转载)常用的Mysql数据库操作语句大全

    打开CMD,进入数据库命令:mysql -hlocalhost -uroot -p 退出数据库:exit 用户管理: 1.新建用户: >CREATE USER name IDENTIFIED B ...

随机推荐

  1. Kubernetes弹性伸缩全场景解读(五) - 定时伸缩组件发布与开源

    前言 容器技术的发展让软件交付和运维变得更加标准化.轻量化.自动化.这使得动态调整负载的容量变成一件非常简单的事情.在kubernetes中,通常只需要修改对应的replicas数目即可完成.当负载的 ...

  2. Vue电商后台管理系统项目第2天-首页添加表格动态渲染数据&分页

    0x01.使用Github学习的姿势 基于昨天的内容,今天的内容需要添加几个单文件组件,路由文件也需要做相应的增加,今天重点记录使用Element-UI中的表格组件实现数据动态渲染的实现流程和分页功能 ...

  3. 下载mysql document

    wget -b -r -np -L -p https://dev.mysql.com/doc/refman/5.6/en/ 在下载时.有用到外部域名的图片或连接.如果需要同时下载就要用-H参数. wg ...

  4. 22-2 模板语言的进阶和fontawesome字体的使用

    一  fontfawesome字体的使用 http://fontawesome.dashgame.com/ 官网 1 下载 2 放到你的项目下面 3 html导入这个目录 实例: class最前面的f ...

  5. Core Data 数据出现Fault

    I am mapping Json Data from Server using Restkit and I am Displaying those data by fetching from db. ...

  6. 2018-9-1-win10-uwp-轻量级-MVVM-框架入门-2.1.5.3199

    title author date CreateTime categories win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199 lindexi 2018-09-01 16:24: ...

  7. laravel validate 设置为中文(验证提示为中文)

    把 resources\lang 下en 的文件夹 复制在同一目录并改名为 zn 把zn 中的 validation.php文件修改为 https://laravel-china.org/articl ...

  8. ABSD 基于架构的软件设计方法方法简介(摘抄)

    ABSD(Architecture-Based Software Design)基于架构的软件设计方法 有三个基础: 第一个基础是功能分解.在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术 ...

  9. const(每个对象中的常量), static const(类的编译时常量)

    1 每个对象中的常量 --- const数据成员 const限定,意味着“在该对象生命周期内,它是一个常量”. 关键字const 使被限定的量为常量 在该类的每个对象中,编译器都为其const数据成员 ...

  10. H3C FTP双TCP连接方式