MYSQL的初次使用

上一篇文章说的是如何链接mysql数据库。现在应该是如何使用mysql来进行数据查询操作,说具体一点就是如何在c语言中调用SQL语句。mysql中提供了数据查询语句的函数调用。
书上讲了两个函数都可以进行相应的操作:
1.mysql_query(MYSQL *mysql,const char *query);
2.mysql_real_query(MYSQL *myql,const char *query,unsigned int length);
如果查询的是包含2进制的数据,则必须使用2,原因是1的结尾是靠/0来判断的,二进制的中可能含有/0的数据。并且mysql_real_query()比mysql_query()速度要快一些,一般使用2.至于length一般选用strlen(query);来测得就可以,使用也挺方便的。

code:

#include <stdio.h> #include "mysql.h" int main() { MYSQL mysql; // need a instance to init MYSQL_RES *res; MYSQL_ROW row; char *query; int t,r; // connect the database mysql_init(&mysql); if (!mysql_real_connect(&mysql,"localhost", "root", "123", "student",0,NULL,0)) { printf( "Error connecting to database: %s\n",mysql_error(&mysql)); return 0; } else printf("Connected mysql successfully!\n"); query = "select * from student"; t = mysql_real_query(&mysql,query,(unsigned int) strlen(query));

//调用mysql_real_query来进行SQL语句的操作,其中SQL语句就是query字符串的语句,

//调用成功返回0,否则返回非0

if (t)

{ printf("Error making query: %s\n", mysql_error(&mysql));

//mysql_error用于输出错误信息。

} else printf("[%s] made...\n", query);

/*知识点:

mysql_real_query()辅助函数

1.mysql_store_result()将查询的全部结果读取到客户端。查询数据库成功后,必须调用mysql_store_result()或mysql_use_resulr()函数

MYSQL_RES *mysql_store_result(MYSQL *mysql)原型

所以使用的时候首先要定义一个MYSQL_RES的指针来接受返回的参数。

2.mysql_num_fields()返回结构集中的行数。

3.mysql_fetch_row()检索结果集的下一行

函数原型

MYSQL_ROW  mysql_fetch_row(MYSQL_RES *result);

接受参数MYSQL_RES 是由musql_store_result()返回的。

返回参数类型MYSQL_ROW 所以要使用这个函数的时候要定义结构体 MYSQL_ROW 

*/
res = mysql_store_result(&mysql);

while(row = mysql_fetch_row(res))

//row不为0的时候循环。 

//输出结果一共有好多行
{
for(t=0;t<mysql_num_fields(res);t++)

//一行有多少个字符串

{

printf("%s ",row[t]);

}

printf("\n");

}

mysql_close(&mysql);

return 0;
}


这个实例主要是用SQL语言来进行查询的操作,这个是mysql中最复杂的,所以一定要注意;
主要内容包含几点:
1.mysql_real_query()函数的使用。
2.如果是查询语句,怎么样输出查询结果。
包含几个函数的使用
a,mysql_store_result() 返回MYSQL_RES *
b.mysql_num_fields() 返回整数,一行有多少个字符串
c.mysql_fetch_row() 返回 MYSQL_RES 
这三个函数各自的参数是什么,返回值是什么,各代表什么意思。
实例一定要记住。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值