函数运行

函数运行
在C连接mysql服务器,需要使用libmysqlclient开发包。在ubuntu系统上可以通过
命令 sudo apt-get install libsqlclient-dev 安装。
和其它和数据库访问类似,具体的过程有
1,连接数据库
2,访问数据
3,处理数据
4,断开连接
下面,接上面的顺序来了解mysql数据库编程所要用到的具体函数
一,连接数据库
1,初始化一个连接句柄
MYSQL *mysql_init(MYSQL *);
//参数如果为NULL,则分配一个新的连接句柄
2,int mysql_option(MYSQL *connection, enum option_to_set, const char *
argument);
//这个函数用来设置连接特性的,也可以不设,一切会默认。而且,每次只能设
置一个选项,想设置多个选项,则需要多次调用。 以下是三个主要的选项,其它
见手册。
枚举选项 实际参数类型 含义
MYSQL_OPT_CONNECT_TIMEOUT   常数,无符号的整数类型   中止连接前等待的秒

MYSQL_OPT_COMPRESS    无,使用NULL       在网络连接中使用压缩
MYSQL_INIT_COMMAND    常数 ,char* 连接建立以后发送的命令
3,设置及连接数据库
MYSQL *mysql_real_connect(MYSQL *connection, //连接句柄
const char *server_host, //数据库所在主机名
const char *sql_username; //访问数据库的数据名
const char *sql_password; //密码
const char *db_name; //数据库名
unsigned int port_number, //端口号,为0则使用默认(一般选择)
const char *unix_socket_name, //一般为NULL
unsigned int flags); //见说明
//它们的含意参数 的名称已经很明白了,而最后一个参数 flags只有两个参数
可供选择
CLIENT_ODBC---如果你确知ODBC正用于远程数据库,则需要用到它。
CLIENT_FOUND_ROW--???

二,执行SQL语句 mysql_query
int mysql_query(MYSQL *connection, const char *query);
利用connection对query的SQL语句执行成功,则返回 0.
三,获取数据
1,检验受影响的行数量
my_ulonglong mysql_affected_rows(MYSQL *connection);
2,检索数据
一般,我们用mysql_query发出查询,利用mysql_store_result或
mysql_use_result执行检索。再可以用mysql_fetch_row来处理数据,最后用
mysql_free_result进行整理工作。
MYSQL_RES *mysql_store_result(MYSQL *connection);
//如果执行失败则返回 NULL
实际 返回 的行数 :
my_ulonglong mysql_num_rows(MYSQL_RES *result);

获得从store result中得到的结构体,并从中检索单个行,返回给你的行结构体
中的数据。当没有更多的数据,或者出错时,将返回NULL值。
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);

在結果集合中跳跃,设置由下面的fetch row选项返回 的行。区距值是一个行的
号码,这个值大于零而小于結果集合中的行数量。传递零值将会在下一次调用到
mysql_fetch_row中时返回 第一行。
void mysql_data_seek(MYSQL_RES *result, my_ulonglong offset);


得到一个区距值(off value),表明 在结果集合中当前的位置。它不是行数,所
以不能用mysql_data_seek来使用它。
MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *result);

在結果集合中移动当前位置,并将当前的位置返回
MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET
offset);

当使用完一个结果集合后,要使MYSQL库整理分配的对象。
void mysql_free_result(MYSQL_RES *result);


逐行检索数据
MYSQL_RES * mysql_use_result(MYSQL *connection);
//它嚅然 也是返回 一个结果集合对象,但在返回 时它实际 上并没有将任何检
索到的数据返回 到结果集合中,而仅仅是将结果集合初始化来接收数据。

注:: 为了检索数据,你必須和以前 一样反复 调用 mysql_fetch_row,直到检
索完所有的数据,如果你在一次use result调用中没有得到所有的数据,那么后面
的数据检索就损坏 了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值