C++ API接口连接MySQL(包含Connector C++介绍 )

本文介绍了如何使用C++的MySQL Connector API连接并操作MySQL数据库,包括登录、执行SQL查询以及启用多语句执行。此外,还提到了MySQL Connector/C++的安装配置步骤,它是遵循JDBC规范的C++接口。
摘要由CSDN通过智能技术生成

连接数据库用到的函数包括mysql_init, mysql_real_connect, mysql_close,mysql_query(pConn, “select * from customers”)等
其实所有的数据库操作都是先写个sql语句,然后用mysql_query(&mysql,query)来完成,包括创建数据库或表,增删改查
各个函数用途简介

登录MySQL数据库

MYSQL * STDCALL mysql_init(MYSQL *mysql);   //成功返回*mysql指针,失败返回NULL。

MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, 
                                const char *host,   //MySQL的IP,远程登录输入远程登录的IP地址
                                const char *user,   //登录用户名
                                const char *passwd, //登录密码
                                const char *db,     //使用的数据库名称
                                unsigned int port,  //MySQL端口号(0为默认值3306)
                                const char *unix_socket,    //是否使用socket机制登录,NULL:否
                                unsigned long clientflag);  //连接标志,通常为0
//成功返回*mysql指针,失败返回NULL。

操作查询MySQL more

int mysql_query(MYSQL *mysql, const char *query)
//返回值
//如果查询成功,返回0。如果出现错误,返回非0值。

执行由“Null终结的字符串”查询指向的SQL查询。正常情况下,字符串必须包含1条SQL语句,而且不应为语句添加终结分号(‘;’)。如果允许多语句执行,字符串可包含多条由分号隔开的语句。请参见25.2.9节,“多查询执行的C API处理”。
mysql_query()不能用于包含二进制数据的查询,应使用mysql_real_query()取而代之(二进制数据可能包含字符‘\0’,mysql_query()会将该字符解释为查询字符串结束)。

如果希望了解查询是否应返回结果集,可使用mysql_field_count()进行检查。请参见25.2.3.22节,“mysql_field_count()”。

设置多语句

mysql_query通常使用单独的SQL语句(不带“;”的),也可调用mysql_set_server_option(&mysql,MYSQL_OPTION_MULTI_STATEMENTS_ON)指定以分号分隔的多个SQL语句

原型:int mysql_set_server_option(MYSQL *mysql, enum enum_mysql_set_option option)
//返回值
//0表示成功,非0值表示出现错误
MYSQL_OPTION_MULTI_STATEMENTS_ON 允许多语句支持
MYSQL_OPTION_MULTI_STATEMENTS_OFF 禁止多语句支持
结束
	mysql_free_result(res);  //释放储存结果对象
	mysql_close(conn);   //关闭前面打开的mysql连接
例子
#include "pch.h"
#include <winsock.h>
#include <mysql.h>
//#pragma comment(lib,"libmySQL.lib")  //要加不然会编译出错
#include "stdio.h"
#include "string.h"
#include<iostream>
using namespace std;

struct conn_info {
   
	const char *host;
	const char *user;
	const char *password;
	const char *db;
};

struct student
{
   
	char name[10];
	char nu[10];
	struct student *next;
};

class Mysql
{
   
public:
	/********************************连接数据库*****************************************************/
	MYSQL* mysql_connect(conn_info con) {
   
		MYSQL* mysql = mysql_init(NULL);//mysql初始化函数,实例化一个新的对象(NULL为新的对象,否则为初始化以创建的对象)
		if (!mysql_real_connect(mysql, con.host, con.user, con.password, con.db, 3306, NULL, 0)) {
   
			//mysql_real_connect(MYSQL *mysq
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值