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; }
相关推荐
#### 核心知识点三:编译和执行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 #include #include #include "mysql.h" int main() { MYSQL mysql; // 创建MYSQL结构体实例 mysql_init(&mysql); // 初始化MYSQL...
总结,C语言对MySQL的操作涉及连接、查询、结果处理、错误处理等多个方面。通过学习和实践,你可以利用C语言的强大功能来构建高效的数据库应用。记得在实际项目中始终关注安全性、性能和代码的可维护性。
你可以查阅MySQL的官方文档、相关的技术博客、书籍以及Stack Overflow等社区中的讨论,以获取更多关于C语言访问MySQL数据库的最佳实践和示例代码。 在专业指导方面,理解数据库连接池的概念并合理使用它,可以显著...
这个简单的示例展示了C语言与MySQL数据库交互的基本流程。在实际应用中,可能还需要处理更复杂的事务、错误处理、连接池管理等问题。此外,为了提高安全性,推荐使用预编译语句( Prepared Statements)防止SQL注入...
在C语言中连接MySQL数据库是一项基础且重要的技能,特别是在开发跨平台的应用程序时。下面将详细介绍如何使用C语言实现这一功能,以及与之相关的环境配置和工具。 首先,要使用C语言连接MySQL数据库,你需要安装...
【C语言调用MySQL快速教程】是针对C程序员的一个实用指南,旨在教授如何高效地在C程序中连接、操作MySQL数据库。本教程分为几个关键部分,包括建立数据库连接、数据插入、更新和删除,以及查询结果的处理。 首先,...
在IT领域,C语言是一种基础且强大的编程语言,而MySQL则是一种广泛应用的关系型数据库管理系统。本文将深入探讨如何使用C语言来操作MySQL数据库,实现数据的增删改查功能。 首先,要使用C语言连接MySQL数据库,我们...
在IT领域,C语言是一种基础且强大的编程语言,而MySQL是一种广泛应用的关系型数据库管理系统。将两者结合,可以创建高效的数据处理应用。本压缩包提供的" C语言操作mysql'类 "是为了简化C语言与MySQL数据库之间的...
本文将深入探讨如何在Linux环境下利用C语言实现与MySQL数据库的成功连接,包括必要的软件包安装、代码示例以及关键步骤解析。 ### 软件包的安装 在Linux系统上进行C语言编程并连接MySQL数据库前,首先需要确保系统...
下面我将提供一个简单的C语言示例,展示如何使用MySQL C API进行基本的增删改查操作。请注意,这个示例假设你已经安装了MySQL数据库,并且已经配置了相应的数据库和用户权限。 首先,确保你的C开发环境已经安装了...
3. 编写C代码:使用MySQL提供的API函数,如`mysql_connect`、`mysql_query`等,编写C语言程序来执行数据库操作,如建立连接、发送SQL查询、处理结果集等。 4. 测试和调试:运行程序,确保能够成功连接并操作数据库。...
MySQL提供了C语言的API,允许开发者使用C语言与MySQL数据库进行交互。这本教程就是为那些刚开始学习如何使用C语言开发MySQL程序的新手准备的。 ### MySQL服务端和嵌入式版本 MySQL有两种不同的版本:MySQL服务端...
成功执行后,如果是一个SELECT查询,则可以使用mysql_store_result或mysql_use_result来处理结果集。而如果SQL语句是INSERT、UPDATE或DELETE操作,则可以使用mysql_affected_rows函数来获得操作影响的行数。 在使用...
### Eclipse配置C语言连接MySQL环境详解 #### 一、引言 在Linux环境下,使用Eclipse集成开发环境(IDE)进行C/C++编程时,有时需要实现与MySQL数据库的交互功能。这通常涉及到如何在Eclipse中正确配置C/C++项目以支持...
8. **示例代码**:`connect1.c`是一个简单的示例,展示了如何使用C语言通过MySQL API连接到本地MySQL服务器。代码中包含了连接初始化、实际连接、错误处理和关闭连接的基本步骤。 通过理解和掌握这些知识点,开发者...
下面是一个简单的C程序示例,展示了如何使用MySQL客户端API来连接MySQL服务器并执行SQL查询: ```c #include <mysql.h> #include int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; conn = mysql_...
C连MYSQL。用C连MYSQL及其简单操作的示例。。。。。。。