/*
* 1. 编译环境
* 操作系统 Ubuntu10.04
* GCC 4.4.3
* 首先请确保你的系统安装了下列软件包:
* 1. mysql-client,libmysqlclient-dev和libmysqlclient15off
* sudo apt-get install mysql-client libmysqlclient-dev libmysqlclient15off
* ps:若提示找不到libmysqlclient15off,请在软件源中添加
* deb http://security.ubuntu.com/ubuntu hardy-security main
* 2. mysql-server
* sudo apt-get install mysql-server
*
* 2. 使用前,先在mysql中建立数据库batman: create database batman;
* 在batman中建立两张表:TCPpackets, UDPpackets
* create table UDPpackets(MB double,KbperSec double,seconds double,percents double);
* create table TCPpackets(MB double,KbperSec double);
*
* 3. 编译选项:
* gcc -o c_mysql ./c_mysql.c -I /usr/include/mysql -L /usr/lib/mysql -l mysqlclient -std=c99
*
* 4. 使用方法:
* ./c_mysql <filename> -tcp|-udp
*/
源文件c_mysql.c的内容如下:
上述代码的主要作用是把测试batman协议的结果数据保存到MySQL中,结果包括对TCP测试的结果和对UDP测试的结果。这两种数据的格式如下:
TCP:
UDP:
这不是重点,重点是对MySQL的操作。可是废话已经一萝筐了...
1. 首先是第一个要用到的结构:
MYSQL
该结构代表1个数据库连接的句柄。几乎所有的MySQL函数均使用它。不应尝试拷贝MYSQL
结构。不保证这类拷贝结果会有用。在后续的数据库操作中都要把它作为参数的。
2. 在声明一个MYSQL类型的变量mysql后,就要首先调用 mysql_init(&mysql);
该函数的原型是:MYSQL *mysql_init(MYSQL *mysql)
描述
分配或初始化与mysql_real_connect()相适应的MYSQL对象。如果mysql是NULL指针,该
函数将分配、初始化、并返回新对象。否则,将初始化对象,并返回对象的地址。如果
mysql_init()分配了新的对象,当调用mysql_close()来关闭连接时,将释放该对象。
返回值
初始化的MYSQL*句柄。如果无足够内存以分配新的对象,返回NULL。
错误
在内存不足的情况下,返回NULL。
3. 调用mysql_real_connect来获得一个连接实例。
该函数的原型是:MYSQL *mysql_real_connect(MYSQL *mysql,
const char *host,
const char *user,
const char *passwd,
const char *db,
unsigned int port,
const char *unix_socket,
unsigned long client_flag)
描述
mysql_real_connect()尝试与运行在主机上的MySQL数据库引擎建立连接。在你能够执行
需要有效MySQL连接句柄结构的任何其他API函数之前,mysql_real_connect()必须成功
完成。
参数的指定方式如下:
# 第1个参数应是已有MYSQL结构的地址。调用mysql_real_connect()之前,必须调用
mysql_init()来初始化MYSQL结构。
# “host”的值必须是主机名或IP地址。如果“host”是NULL或字符串"localhost",连接将被
视为与本地主机的连接。如果操作系统支持套接字(Unix)或命名管道(Windows),
将使用它们而不是TCP/IP连接到服务器。
# “user”参数包含用户的MySQL登录ID。如果“user”是NULL或空字符串"",用户将被视为
当前用户。在UNIX环境下,它是当前的登录名。在Windows ODBC下,必须明确指定
当前用户名。
# “passwd”参数包含用户的密码。如果“passwd”是NULL,仅会对该用户的(拥有1个空密
码字段的)用户表中的条目进行匹配检查。这样,数据库管理员就能按特定的方式设置
MySQL权限系统,根据用户是否拥有指定的密码,用户将获得不同的权限。
4. 执行增删改查操作mysql_query:
该函数的原型是:int mysql_query(MYSQL *mysql, const char *query) 描述 # 执行由“Null终结的字符串”查询指向的SQL查询。正常情况下,字符串必须包含1条SQL语
句,而且不应为语句添加终结分号(‘;’)或“\g”。如果允许多语句执行,字符串可包含多条
由分号隔开的语句。
# mysql_query()不能用于包含二进制数据的查询,应使用mysql_real_query()取而代之
(二进制数据可能包含字符‘\0’,mysql_query()会将该字符解释为查询字符串结束)。
# 如果希望了解查询是否应返回结果集,可使用mysql_field_count()进行检查。 返回值 如果查询成功,返回0。如果出现错误,返回非0值。 总结:以上只是介绍了本程序要用到的MySQL数据结构和函数,这些介绍都是来自MySQL手册,
详细信息可以参考MySQL C API。
分享到:
相关推荐
使用C语言连接MYSQL数据库源代码
在我们做C项目用到mysql数据库时需要进行和mysql进行连接,而连接mysql的步骤中几乎时固定的,因此可以写在文件中保存以备用。(文件中main函数中两个printf函数的输出为测试结果,调用连接函数前为NULL,调用连接...
C语言连接ACCESS数据库,示例代码 C语言连接ACCESS数据库,示例代码
怎么使用C语言连接SQL数据库,适合初级学习者和中级学习者。
linux下C语言连接mysql数据库.docx
linux下C语言连接mysql的样例 * 需先安装mysqlclient库 * linux下C语言连接mysql的样例 * */ #include #include #include<mysql/mysql.h> void create(MYSQL *conn_ptr) { int ret; ret = mysql_query(conn_...
Ubuntu下C语言访问MySQL数据库入门 https://blog.csdn.net/xiajun07061225/article/details/8505987
C语言连接MySQL数据库
linux下c语言操作mysql数据库,包括数据库的增删查找,使用mysql库进行操作
linux下C语言连接MySQL数据库.docx
使用C语言控制台结合mysql数据库实现简单的图书管理系统,适合初学者学习之用
用C语言操作mysql数据库 包括查询与操作等多种功能!
C语言开发关系型数据库包括80种功能,功能多,程序简单
用c语言编写的数据库管理系统,dbms1和dbms2是两个不同的数据库管理系统,dbms1可以实现创建新数据库,dbms2可以实现修改数据库的内容。程序比较简单,可以在vc++下运行,可以帮助学习开发数据库管理系统
此文档使用GTK+2.0做了一个小的界面,不过不怎么完整,采用C语言连接MYSQL数据库 代码能运行的前提是: 1.这是centos上的一个小程序,需要在linux的环境下(不知道能否在windows上) 2.linux上装有MYSQL数据库 3....
一个用C语言实现的小型数据库系统,是学习的好范例
C语言简单的连接达梦数据库,里面代码可行,需要进行简单配置VS2013软件