(Mysql 二)Linux C语言显示mysql数据库中某个表的数据

我会先帖简单的带注释的代码,再详细解释


首先,看一下Linux下Mysql数据库的数据,最后再用程序打印出来


从上图我们可以看出,在一个名为 test数据库中,有一个名为 Msg的表..并且表中的内容,也显示了出来。

接下来的程序,就是要打印Msg表中的所有数据。

#include<stdio.h>
#include<mysql.h>
#include<string.h>

int main(int argc, char const *argv[])
{
	MYSQL *mysql;
	MYSQL_RES *res;
	MYSQL_ROW row;
	int t;

	/*SELECT * FROM Msg是一个MYSQL语句,意思为获取
	  名为Msg的表中的所有数据*/
	char *query = "SELECT * FROM Msg";  

	/*初始化mysql句柄*/
	mysql = mysql_init(NULL); 
	
	/*链接mysql数据库,连接的库名为test*/
	if(!mysql_real_connect(mysql,"localhost","root","zhujunwen"
		,"test",0,NULL,0))
	{
		printf("failed to connect:%s\n",mysql_error(mysql));
		return -1;
	}

	/*往MYSQL数据库发送MYSQL语句,成功返回0*/
	t=mysql_real_query(mysql,query,(unsigned int)strlen(query));
	if(t)
	{
		printf("failed to query:%s\n",mysql_error(mysql));
		return -1;
	}

	/*用res获取刚发送的MYSQL语句 返回的结果集*/
	res = mysql_store_result(mysql);

	/*mysql_fetch_row用于获取结果集中的下一行数据*/
	while(row=mysql_fetch_row(res))
	{
		/*mysql_num_fields返回结果集的一行中有多少列个数据*/
		for(t=0;t<mysql_num_fields(res);t++)
		{
			printf("%s\t",row[t]);
		}
		printf("\n");
	}

	/*在mysql中,既然获取了结果集,最后就要释放它*/
	mysql_free_result(res);

	/*关闭mysql句柄*/
	mysql_close(mysql);

	return 0;
}

程序执行结果:




要大概讲讲的是函数:mysql_real_query(),mysql_store_result(),mysql_fetch_row(),mysql_num_fields()


mysql_real_query():往数据库发送MYSQL命令,而且有一个参数是,需要输入命令的字符数,用strlen就可以

mysql_store_result():当往mysql数据发送一个MYSQL语句之后,这个函数就返回MYSQL语句获取到的结果集,获取了结果集,记得最后要

                                         释放掉,下面再说说我的间接什么是结果集。

mysql_fetch_row():对结果集进行处理,获取结果集的下一行数据,进行处理。

mysql_num_fields():返回 结果集的一个数据中有多少列。


何为结果集:

在我看来


上图就是一个结果集,mysql_store_result返回的就是类似这样的一个表格。(不包括 num,name,sex等字段)


结合上面的程序,那个while循环嵌套for循环,应该不难看懂。

另外row的类型是MYSQL类型,其实就是 char**类型,所以row[t]中放的是一个指向一个字符串首地址的指针(也可以看成放的是一个字符串的首地址)。

所以row[t]可以看成是一个字符串。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值