`
jimmee
  • 浏览: 539952 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

c语言查询mysql示例

阅读更多

1.安装mysql-server,在Ubuntu 10.04下安装mysql-server-5.1,会自动安装mysql-client_5.1
 sudo apt-get install mysql-server-5.1


2.C APIs包含在mysqlclient库文件中与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询,因此需要安装libmysqlclient-dev
 sudo apt-get install libmysqlclient-dev
 假定已安装成功,相关文件如下:
 头文件在/usr/include/mysql目录下;
 库文件在/usr/lib/mysql和/usr/lib目录下

 

注意:mac,需要再安装mysql-connector-c,同时具体的库要链接到/usr/lib下:例如

 

sudo ln -s /usr/local/Cellar/mysql-connector-c/6.1.6/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib


3. 编译:
 gcc testdb.c -o test -I /usr/include/mysql -L /usr/lib -lmysqlclient 

MYSQL *mysql_init(MYSQL *);
//这里称之为载入函数吧,返回的MYSQL指针要用到后续的函数中

int mysql_options(MYSQL *connection, enum option_to_set,const char *argument);
//设置MYSQL*的一些属性,比如超时时间等

MYSQL *mysql_real_connect(MYSQL *connection,
                const char *server_host,
                const char *sql_user_name,
                const char *sql_password,
                const char *db_name,
                unsigned int port_number,//置0连接默认端口,一般为3306
                const char *unix_socket_name,//NULL
                unsigned int flags);//无另外属性时置0
//连接函数

void mysql_close(MYSQL *connection);
//关闭连接

unsigned int mysql_errno(MYSQL *connection);
//返回错误代码

char *mysql_error(MYSQL *connection);

//返回错误信息

int mysql_query(MYSQL *connection, const char *query);
//执行sql语句

my_ulonglong mysql_affected_rows(MYSQL *connection);
//返回执行语句过后受影响的行数,针对insert,update,delete

MYSQL_RES *mysql_store_result(MYSQL *connection);
//返回执行结果,适用于数据量较小时,会返回到客户端保存

my_ulonglong mysql_num_rows(MYSQL_RES *result);
//返回上面函数返回结果的行数

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);
//抽取一条记录,返回NULL时表示抽取完记录或者错误

void mysql_data_seek(MYSQL_RES *result, my_ulonglong offset);
//调整数据位置,offset为0时,下次调用mysql_fetch_row将返回result第一条记录

MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *result);
//返回当前的位置

MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET offset);
//移动数据位置,并返回先前的位置,可以和上一个函数结合使用

void mysql_free_result(MYSQL_RES *result);
//释放result空间

MYSQL_RES *mysql_use_result(MYSQL *connection);
//返回执行结果,适用于数据量较大时,不返回到客户端保存

unsigned int mysql_field_count(MYSQL *connection);
//返回查询结果中的列数(column数)

MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result);
//获得查询结果中的列名等信息(表头信息)

 

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

int main(void) {
	// mysql操作符
	MYSQL *mysql;
	// mysql结果集
	MYSQL_RES *mysql_res;
	// mysql行操作符
	MYSQL_ROW mysql_row;

	char sqlcmd[200];
	int r, t;

	// 初始化
	mysql = mysql_init(NULL);
	if (!mysql) {
		return EXIT_FAILURE;
	}
	printf("%s\n", "init");

	// 链接
	mysql = mysql_real_connect(mysql, "127.0.0.1", "root", "root", "test", 0, NULL, 0);
	if (!mysql) {
		return EXIT_FAILURE;
	}
	printf("%s\n", "connect");
	mysql_set_character_set(mysql, "utf8");

	// 执行查询
	sprintf(sqlcmd, "%s", "select id,name from user");
	r = mysql_real_query(mysql, sqlcmd, strlen(sqlcmd));
	if (r) {
		// 结束
		mysql_close(mysql);
		return EXIT_FAILURE;
	}
	printf("%s\n", "begin to query");
	mysql_res = mysql_store_result(mysql);
	if (!mysql_res) {
		// 结束
		mysql_close(mysql);
		return EXIT_FAILURE;
	}

	while((mysql_row = mysql_fetch_row(mysql_res))) {
		for (t = 0; t < mysql_num_fields(mysql_res); t++) {
			printf("%s,", mysql_row[t]);
		}
		printf("\n");
	}

	// 释放
	mysql_free_result(mysql_res);
	printf("%s\n", "query finish");

	// 结束
	mysql_close(mysql);

	return EXIT_SUCCESS;
}


 

0
5
分享到:
评论

相关推荐

    C语言调用mysql快速教程(精华篇)

    #### 核心知识点三:编译和执行C语言MySQL程序 文章还简要介绍了如何编译和运行C语言编写的MySQL程序。使用`gcc`编译器的命令行如下: ```bash gcc -o insert insert.c -L/usr/local/mysql/lib/mysql/*.a -lz ``` ...

    c语言操作mysql学习资料

    本文提供的实例代码将上述知识点串联起来,形成一个完整的使用C语言操作MySQL数据库的示例。通过这个示例,读者可以直观地了解C语言操作MySQL的整个流程,并学习如何将理论知识应用于实际开发中。通过对本手册的学习...

    用C语言连接mysql

    下面是一段简单的示例代码,用于演示如何使用C语言连接MySQL数据库: ```c #include #include #include "mysql.h" int main() { MYSQL mysql; // 创建MYSQL结构体实例 mysql_init(&mysql); // 初始化MYSQL...

    c语言对mysql的操作

    总结,C语言对MySQL的操作涉及连接、查询、结果处理、错误处理等多个方面。通过学习和实践,你可以利用C语言的强大功能来构建高效的数据库应用。记得在实际项目中始终关注安全性、性能和代码的可维护性。

    一种基于C语言访问MySQL数据库的研究.pdf

    你可以查阅MySQL的官方文档、相关的技术博客、书籍以及Stack Overflow等社区中的讨论,以获取更多关于C语言访问MySQL数据库的最佳实践和示例代码。 在专业指导方面,理解数据库连接池的概念并合理使用它,可以显著...

    linux下C语言连接mysql数据库

    这个简单的示例展示了C语言与MySQL数据库交互的基本流程。在实际应用中,可能还需要处理更复杂的事务、错误处理、连接池管理等问题。此外,为了提高安全性,推荐使用预编译语句( Prepared Statements)防止SQL注入...

    c语言连接mysql数据库

    在C语言中连接MySQL数据库是一项基础且重要的技能,特别是在开发跨平台的应用程序时。下面将详细介绍如何使用C语言实现这一功能,以及与之相关的环境配置和工具。 首先,要使用C语言连接MySQL数据库,你需要安装...

    C语言调用mysql快速教程(精华篇).doc

    【C语言调用MySQL快速教程】是针对C程序员的一个实用指南,旨在教授如何高效地在C程序中连接、操作MySQL数据库。本教程分为几个关键部分,包括建立数据库连接、数据插入、更新和删除,以及查询结果的处理。 首先,...

    C语言操作MySQL数据库

    在IT领域,C语言是一种基础且强大的编程语言,而MySQL则是一种广泛应用的关系型数据库管理系统。本文将深入探讨如何使用C语言来操作MySQL数据库,实现数据的增删改查功能。 首先,要使用C语言连接MySQL数据库,我们...

    C语言操作mysql'类(含使用说明和实例程序)

    在IT领域,C语言是一种基础且强大的编程语言,而MySQL是一种广泛应用的关系型数据库管理系统。将两者结合,可以创建高效的数据处理应用。本压缩包提供的" C语言操作mysql'类 "是为了简化C语言与MySQL数据库之间的...

    C语言连接mysql成功

    本文将深入探讨如何在Linux环境下利用C语言实现与MySQL数据库的成功连接,包括必要的软件包安装、代码示例以及关键步骤解析。 ### 软件包的安装 在Linux系统上进行C语言编程并连接MySQL数据库前,首先需要确保系统...

    C语言访问Mysql 增删改查小例子代码.rar

    下面我将提供一个简单的C语言示例,展示如何使用MySQL C API进行基本的增删改查操作。请注意,这个示例假设你已经安装了MySQL数据库,并且已经配置了相应的数据库和用户权限。 首先,确保你的C开发环境已经安装了...

    基于C语言访问MySQL数据库的研究与实现.pdf

    3. 编写C代码:使用MySQL提供的API函数,如`mysql_connect`、`mysql_query`等,编写C语言程序来执行数据库操作,如建立连接、发送SQL查询、处理结果集等。 4. 测试和调试:运行程序,确保能够成功连接并操作数据库。...

    mysql基于c语言编程教程

    MySQL提供了C语言的API,允许开发者使用C语言与MySQL数据库进行交互。这本教程就是为那些刚开始学习如何使用C语言开发MySQL程序的新手准备的。 ### MySQL服务端和嵌入式版本 MySQL有两种不同的版本:MySQL服务端...

    c语言操作mysql.pdf

    成功执行后,如果是一个SELECT查询,则可以使用mysql_store_result或mysql_use_result来处理结果集。而如果SQL语句是INSERT、UPDATE或DELETE操作,则可以使用mysql_affected_rows函数来获得操作影响的行数。 在使用...

    eclipse配置C语言连接mysql环境

    ### Eclipse配置C语言连接MySQL环境详解 #### 一、引言 在Linux环境下,使用Eclipse集成开发环境(IDE)进行C/C++编程时,有时需要实现与MySQL数据库的交互功能。这通常涉及到如何在Eclipse中正确配置C/C++项目以支持...

    c语言操作mysql[参考].pdf

    8. **示例代码**:`connect1.c`是一个简单的示例,展示了如何使用C语言通过MySQL API连接到本地MySQL服务器。代码中包含了连接初始化、实际连接、错误处理和关闭连接的基本步骤。 通过理解和掌握这些知识点,开发者...

    在Linux下编译安装MySQL并通过C语言操作MySQL数据库.pdf

    下面是一个简单的C程序示例,展示了如何使用MySQL客户端API来连接MySQL服务器并执行SQL查询: ```c #include &lt;mysql.h&gt; #include int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; conn = mysql_...

    C语言 开发mysql数据库

    C连MYSQL。用C连MYSQL及其简单操作的示例。。。。。。。

Global site tag (gtag.js) - Google Analytics