mysql api 基本使用教程,MySQL API的基本使用

使用Prepare Statement的函数来访问数据库,我是按照以下几个步骤进行的。初学MySQL编程,有什么问题希望可以一起交流。

初始化 MYSQL 对象

MYSQL *mysql_init(MYSQL *mysql)

初始化的时候参数一般设置为NULL。

建立连接

MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)

初始化Prepare Statement

MYSQL_STMT *mysql_stmt_init(MYSQL *mysql)

Prepare

int mysql_stmt_prepare(MYSQL_STMT *stmt, const char *stmt_str, unsigned long length)

length是stmt_str的长度。

返回0表示成功。

(注:这里的SQL语句末尾不可以加上“;”,即stmt_str)

绑定参数

my_bool mysql_stmt_bind_param(MYSQL_STMT *stmt, MYSQL_BIND *bind)

若stmt_str中要传入参数,就需要通过该函数来实现。比如:

char stmt_str[] = "SELECT * FROM Person WHERE id=? AND name=?";

mysql_stmt_prepare(stmt, stmt_str, (unsigned long)strlen(stmt_str));

MYSQL_BIND params[2];

int id = 1;

char name[] = "Tom";

memset(params, 0, sizeof(params));

params[0].buffer_type = MYSQL_TYPE_LONG;

params[0].buffer = (char *)&id;

params[1].buffer_type = MYSQL_TYPE_STRING;

params[1].buffer = (char *)name;

// 绑定

mysql_stmt_bind_param(stmt, params);

执行SQL

int mysql_stmt_execute(MYSQL_STMT *stmt)

绑定结果输出

my_bool mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind)

绑定之后,执行SQL的结果会输出到被绑定的变量中。

保存结果集到MySQL客户端

int mysql_stmt_store_result(MYSQL_STMT *stmt)

SQL语句执行后,结果仍然缓存在Server端,使用mysql_stmt_fetch()只能每次从Server端拉去一条数据,所以可以缓存到Client,然后再获取数据。

获取数据

int mysql_stmt_fetch(MYSQL_STMT *stmt)

每次获取一条数据到my_bool mysql_stmt_bind_result()函数绑定的变量中。有多条数据可以使用循环获取。

释放缓存

my_bool mysql_stmt_free_result(MYSQL_STMT *stmt)

关闭Prepare Statement

my_bool mysql_stmt_close(MYSQL_STMT *)

关闭 MYSQL 对象

void mysql_close(MYSQL *mysql)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值