C++连接MySQL数据库(利用API)

一般C/C++与数据库相连有两种方法。

利用ODBC,ADO,或者JDBC

用ODBC,ADO,JDBC等这些接口,利用里面的方法来进行与数据库的连接,简化对数据库的操作,方便对数据库进行管理。

接口的区别可以参考以下文章

http://blog.csdn.net/wildboy2001/article/details/8582860

https://www.cnblogs.com/renzhezhiye/archive/2013/02/19/2917217.html

不过注意的是C/C++也可以用JDBC来与数据库相连接,不过很别扭而已。

数据库相关API连接

第一种方法,除了安装所需的数据库之外,还需要安装相对应的接口,就是上面所说的各种接口,才能使用该方法。
第二种方法,就不同了,直接安装相应的数据库就行了,然后利用开发商所给的API函数方法来进行调用和操作数据表中的数据。
相关API到相应的数据库官网有。

1、为工程附加目录,将MySQL Server xx/include文件添加,我这是VS2015
这里写图片描述

然后再将MySQL Server xx/lib下的libmysql.dll和libmysql.lib复制到我们工程项目文件下
这里写图片描述

连接所需要的头文件和库

#include <winsock.h>        //注意这两个头文件的次序不能放错
#include "mysql.h"

#pragma comment(lib,"libmysql.lib")

连接数据库

#include <winsock.h>
#include "mysql.h"

#pragma comment(lib,"libmysql.lib")

int main()
{
    MYSQL m_sqlConnect;       //数据源指针
    mysql_init(&m_sqlConnect);
    /*   主机IP
         用户
         密码
         数据库
         端口
         套接字
         客户端标识
         无
    */
    if(!mysql_real_connect(&m_sqlConnect,"localhost""root","asfd21","mysql",3306,NULL,0)
    return false;
    ...
    ...
    mysql_close(&m_sqlConnect);  //关闭数据库
}

附加一些从其他博客看到常用的API接口:

mysql_affected_rows() 返回被最新的UPDATE, DELETE或INSERT查询影响的行数。  
mysql_close() 关闭一个服务器连接。  
mysql_connect() 连接一个MySQL服务器。该函数不推荐;使用mysql_real_connect()代替。  
mysql_change_user() 改变在一个打开的连接上的用户和数据库。  
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_host_info() 返回一个描述连接的字符串。  
mysql_get_proto_info() 返回连接使用的协议版本。  
mysql_get_server_info() 返回服务器版本号。  
mysql_info() 返回关于最近执行得查询的信息。  
mysql_init() 获得或初始化一个MYSQL结构。  
mysql_insert_id() 返回有前一个查询为一个AUTO_INCREMENT列生成的ID。  
mysql_kill() 杀死一个给定的线程。  
mysql_list_dbs() 返回匹配一个简单的正则表达式的数据库名。  
mysql_list_fields() 返回匹配一个简单的正则表达式的列名。  
mysql_list_processes() 返回当前服务器线程的一张表。  
mysql_list_tables() 返回匹配一个简单的正则表达式的表名。  
mysql_num_fields() 返回一个结果集合重的列的数量。  
mysql_num_rows() 返回一个结果集合中的行的数量。  
mysql_options() 设置对mysql_connect()的连接选项。  
mysql_ping() 检查对服务器的连接是否正在工作,必要时重新连接。  
mysql_query() 执行指定为一个空结尾的字符串的SQL查询。  
mysql_real_connect() 连接一个MySQL服务器。  
mysql_real_query() 执行指定为带计数的字符串的SQL查询。  
mysql_reload() 告诉服务器重装授权表。  
mysql_row_seek() 搜索在结果集合中的行,使用从mysql_row_tell()返回的值。  
mysql_row_tell() 返回行光标位置。  
mysql_select_db() 连接一个数据库。  
mysql_shutdown() 关掉数据库服务器。  
mysql_stat() 返回作为字符串的服务器状态。  
mysql_store_result() 检索一个完整的结果集合给客户。  
mysql_thread_id() 返回当前线程的ID。  
mysql_use_result() 初始化一个一行一行地结果集合的检索。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值