1. MYSQL *mysql_init(MYSQL *mysql)
初始化一个类型为MYSQL的数据结构,为执行mysql_real_connect()做准备。参数mysql为指向该结构的指针,如果mysql为NULL,则新建并初始化一个MYSQL的数据结构。新建的结构将在mysql_close()中释放。
若成功,返回初始化的MYSQL数据结构的指针,否则返回NULL。
2. 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 int client_flag)
参数mysql是mysql_init()的返回值;
参数host是运行MySQL数据库引擎的机器的TCP/IP主机名,如为NULL则默认为“localhost”;
参数user和passwd是MySQL数据库的合法用户和口令;
参数db是连接的数据库名;
参数port,unix_socket和client_flag一般取默认值。
3. int mysql_query(MYSQL *mysql, const char *query)
执行query字符串中的SQL语句,query必须以0结尾。如果成功,返回0。
4. MYSQL_RES *mysql_store_result(MYSQL *mysql)
返回SELECT,SHOW,DESCRIBE, EXPLAIN等语句执行的结果。函数新建一个MYSQL_RES的数据结构,把结果存储在该结构中。如果查询没有匹配的结果,则返回空数据集。处理完结果集后,必须调用mysql_free_result()。
如果出错,返回NULL,否则返回MYSQL_RES结构的指针。
5. MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
取回结果集中的下一条记录,如果没有记录或出错,返回NULL。
一条记录中的字段数可以用mysql_num_fields(result)获得,各字段的值可以用row[0] 到 row[mysql_num_fields(result)-1]的数组来访问。
查询实例
int mysql_connect_init_ip()
{
strcpy(query,"select * from ip_list");
ip_list_init(&black_list);
ip_list_init(&white_list);
mysql_init(&mysql);
if(mysql_real_connect(&mysql,HOSTNAME,USERNAME,PASSWORD,DATABASE,MYSQL_PORT,NULL,0))
{
if(mysql_real_query(&mysql,query,strlen(query))==0)
{
result = mysql_store_result(&mysql);
while((row = mysql_fetch_row(result))!=NULL)
{
u_int32_t ip = inet_addr(row[2]);
int type=atoi(row[3]);
if(type)
{
ip_list_add(&white_list,ip);
}
else ip_list_add(&black_list,ip);
}
mysql_free_result(result);
}
else
{
fprintf(stderr,"last_flow_rows_m query_sel_id failed:%d %s\n",mysql_errno(&mysql),mysql_error(&mysql));
return 0;
}
}
mysql_close(&mysql);
return 1;
}
分享到:
相关推荐
在我们做C项目用到mysql数据库时需要进行和mysql进行连接,而连接mysql的步骤中几乎时固定的,因此可以写在文件中保存以备用。(文件中main函数中两个printf函数的输出为测试结果,调用连接函数前为NULL,调用连接...
linux下C语言连接mysql数据库.docx
C语言连接MySQL数据库
使用C语言连接MYSQL数据库源代码
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_...
此文档使用GTK+2.0做了一个小的界面,不过不怎么完整,采用C语言连接MYSQL数据库 代码能运行的前提是: 1.这是centos上的一个小程序,需要在linux的环境下(不知道能否在windows上) 2.linux上装有MYSQL数据库 3....
1、在MyEclipse中连接MySQL数据库:依次点击window–>show view–>other–>MyEclipse Database–>DB Browser 图一:找到数据库连接选项 2、选中DB Browser,右键单击,并选择New一个数据连接的菜单,新建一个MySQL...
C连接MySql5.1所需文件.rar 附带一个不错的例子: #include #include #include #include #include <mysql>/*注意要包含这个头文件*/ #pragma comment(lib,libmysql) /*定义了一些数据库连接需要的宏*/ #...
C连接MySQL数据库开发之Windows环境搭建及测试 http://blog.csdn.net/xyang81/article/details/26814633
这个是连接MYSQL数据库的源程序,用C++写的。
Ubuntu10.04下C连接mysql数据库.docx
使用C语言控制台结合mysql数据库实现简单的图书管理系统,适合初学者学习之用
使用C和C++连接MySQL数据库并进行常用的数据库操作。实现了简单的学生(或职工)信息管理系统,源于大学时的数据库课程设计使用C和C++连接MySQL数据库并进行常用的数据库操作。实现了简单的学生(或职工)信息管理...
Ubuntu10.04下C连接mysql数据库[参考].pdf