要想知道怎么通过C语言操作数据库,必须要了解这几个结构体的含义,这里只是简单说一下如果想要了解的更深入可以到网上搜一下
C API数据类型
1、MySQL结构代表一个数据库连接的句柄,包含有关服务器的连接状态的信息,几乎所有的函数均使用到他。要连接MySQL,必须建立MySQL实例,通过MySQL_init初始化方能开始连接。
2、MySQL_RES结果代表返回的查询结果(select,show等)。也将查询的返回的信息成为“结果集”。在c的API里对应的就是MySQL_RES了,从数据库读取数据,最后从MySQL_RES中读取数据。
3、MySQL_ROW这是一个行数据的类型安全(type-safe)的表示。当前它实现为一个计数字节的字符串数组。(如果字段值可能包含二进制数据,你不能将这些视为空终止串,因为这样的值可以在内部包含空字节) 行通过调用MySQL_fetch_row()获得。
这里归纳了C API可使用的函数,详见MySQL手册
下面看一下到底怎么通过C API操作数据库
?
下面的例子为读取数据库的表中的数据
#include
#include
#include
int main()
{
MYSQL mysql;? ? //mysql连接
MYSQL_RES *res; //这个结构代表返回行的一个查询结果集
MYSQL_ROW row; //一个行数据的类型安全(type-safe)的表示
char *query;? //查询语句? ?
int t,r;
mysql_init(&mysql);
if (!mysql_real_connect(&mysql,"localhost", "root", NULL, "test",0,NULL,0))
{
printf( "Error connecting to database: %s",mysql_error(&mysql));
}
else
{
printf("Connected...\n");
}
query=" select * from qq";
t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));//执行指定为计数字符串的SQL查询。
if(t)
{
printf("执行显示时出现异常: %s",mysql_error(&mysql));
}
res=mysql_store_result(&mysql);//检索完整的结果集至客户端。
printf("姓名\t学号\t年龄\t\n");
while(row=mysql_fetch_row(res))
{? ? ? ? ? ? ? ? ? ? ? ? ? ?
for(t=0;t
printf("%s\t" ,row[t]);
}
? printf("\n");
}
mysql_free_result(res);//释放结果集使用的内存。
mysql_close(&mysql);
? ? return 0;
}
运行的命令和代码如下:

其实它是很简单的东西。
--------------------------------------分割线 --------------------------------------
--------------------------------------分割线 --------------------------------------