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及其简单操作的示例。。。。。。。
使用mqtt对接onenet时认证方式,token计算。计算方式采用纯C语言实现,可以移植到任何平台而不受限制
第18章 C语言 18.1 MySQL C API(libmysqlclient) 18.2 Hello,World 18.3 与MySQL服务器建立连接 18.4 执行SQL命令 18.5 处理二进制数据和特殊字符 18.6 出错处理 第19章 Visual Basic 6/...
第18章 C语言 18.1 MySQL C API(libmysqlclient) 18.2 Hello,World 18.3 与MySQL服务器建立连接 18.4 执行SQL命令 18.5 处理二进制数据和特殊字符 18.6 出错处理 第19章 Visual Basic 6/VBA ...
这个C#实现的小游戏是一个简单的猜数字游戏,让玩家...Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes
本书涵盖了适用于mysql 5.1版本的所有命令和编程信息,其中包括一些新增特性和语言接口,对于列举的大部分语句和函数,给出了它们的用法示例。 本书易于使用,并由权威作者执笔。本书: ·提供了mysql语句、...
使用mysql_udf与curl库完成http_post通信模块(mysql_udf,multi_curl,http,post) ...mysql_udf是mysql为c语言提供的一个接口,通过这个接口,用户可以自定义mysql的函数,通过调用这些mysql函数,
本书涵盖了适用于mysql 5.1版本的所有命令和编程信息,其中包括一些新增特性和语言接口,对于列举的大部分语句和函数,给出了它们的用法示例。 本书易于使用,并由权威作者执笔。本书: ·提供了mysql语句、...
主要介绍了SpringBoot整合MyBatis实现乐观锁和悲观锁的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在给出操作步骤之前先简单说明一下批量插入的概念,以帮助大家阅读其后的示例代码。事实上,批量插入并不是什么新的概念,在其它关系型数据库的C接口API中都提供了一定的支持,只是接口的实现方式不同而已。纵观...
但是使用一般的数据库(Mysql)之类的不合适.使用sqlite3这种嵌入式的是个较好的方法,但是Go语言中sqlite3的库是C语言的,Cgo不支持跨平台编译.正是由于这种需求,才想到使用json格式将数据直接保存在文件中. 具体的思路...
计算机二级考试的试题涵盖多个科目,包括但不限于C语言、VB、Java、Python、Access、MySQL数据库、MS Office高级应用等。以下是一些示例题目类型
2020/06/20 16:02 202,827 200多G的C++和C语言项目视频游戏,Windows和Linux下C++开发项目.docx 2020/06/20 16:02 <DIR> Doc 2020/07/04 18:35 <DIR> GZ 2020/06/20 16:02 266,521 Mysql API C++数据库编程.jpg 2020...
第14章讲述了Objective-C++和访问Mysql数据库的编程知识。 第1章 启程.1 1.1 预备知识1 1.2 历史背景1 1.3 内容简介2 1.4 小结3 第2章 对C的扩展4 2.1 最简单的Objective-C程序4 2.2 解构HelloObjective-C程序7 ...
CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS...