c语言连接mysql数据库的实现方法

 更新时间:2020年4月25日 17:49  点击:2115

我这里也有一份网上找到的:/201205/other/C_link_mySql51.rar
C连接MySql5.1所需文件.rar
附带一个不错的例子:

#include <string.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <winsock2.h> 
#include <mysql/mysql.h>/*注意要包含这个头文件*/ 
#pragma comment(lib,"libmysql") 
/*定义了一些数据库连接需要的宏*/ 
#define HOST "localhost" 
#define USERNAME "root" 
#define PASSWORD "123456" 
#define DATABASE "test" 
/*这个函数用来执行传入的sql語句*/ 
void exe_sql(char* sql) { 
MYSQL my_connection; /*这是一个数据库连接*/ 
int res; /*执行sql語句后的返回标志*/ 
/*初始化mysql连接my_connection*/ 
mysql_init(&my_connection); 
/*这里就是用了mysql.h里的一个函数,用我们之前定义的那些宏建立mysql连接,并 
返回一个值,返回不为空证明连接是成功的*/ 
if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD, 
DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) {/*连接成功*/ 
printf("数据库执行exe_sql连接成功!n"); 
/*这句话是设置查询编码为utf8,这样支持中文*/ 
mysql_query(&my_connection, "set names utf8"); 
/*下面这句话就是用mysql_query函数来执行我们刚刚传入的sql語句, 
这会返回一个int值,如果为0,证明語句执行成功*/ 
res = mysql_query(&my_connection, sql); 
if (res) {/*现在就代表执行失败了*/ 
printf("Error: mysql_query !\n"); 
/*不要忘了关闭连接*/ 
mysql_close(&my_connection); 
} else {/*现在就代表执行成功了*/ 
/*mysql_affected_rows会返回执行sql后影响的行数*/ 
printf("%d 行受到影响!\n", 
mysql_affected_rows(&my_connection)); 
/*不要忘了关闭连接*/ 
mysql_close(&my_connection); 
} 
} else { 
/*数据库连接失败*/ 
printf("数据库执行exe_sql连接失败!\n"); 
} 
} 
/*这个函数用来执行传入的sql語句,并打印出查询結果*/ 
void query_sql(char* sql) { 
MYSQL my_connection; /*这是一个数据库连接*/ 
int res; /*执行sql語句后的返回标志*/ 
MYSQL_RES *res_ptr; /*指向查询结果的指针*/ 
MYSQL_FIELD *field; /*字段结构指针*/ 
MYSQL_ROW result_row; /*按行返回的查询信息*/ 
int row, column; /*查询返回的行数和列数*/ 
int i, j; /*只是控制循环的两个变量*/ 
/*初始化mysql连接my_connection*/ 
mysql_init(&my_connection); 
/*这里就是用了mysql.h里的一个函数,用我们之前定义的那些宏建立mysql连接,并 
返回一个值,返回不为空证明连接是成功的*/ 
if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD, 
DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) {/*连接成功*/ 
printf("数据库查询query_sql连接成功!\n"); 
/*这句话是设置查询编码为utf8,这样支持中文*/ 
mysql_query(&my_connection, "set names utf8"); 
*下面这句话就是用mysql_query函数来执行我们刚刚传入的sql語句, 
这会返回一个int值,如果为0,证明語句执行成功*/ 
res = mysql_query(&my_connection, sql); 
if (res) { /*现在就代表执行失败了*/ 
printf("Error: mysql_query !\n"); 
/*不要忘了关闭连接*/ 
mysql_close(&my_connection); 
} else { /*现在就代表执行成功了*/ 
/*将查询的結果给res_ptr*/ 
res_ptr = mysql_store_result(&my_connection); 
/*如果结果不为空,就把结果print*/ 
if (res_ptr) { 
/*取得結果的行数和*/ 
column = mysql_num_fields(res_ptr); 
row = mysql_num_rows(res_ptr) + 1; 
printf("查询到 %lu 行 \n", row); 
/*输出結果的字段名*/ 
for (i = 0; field = mysql_fetch_field(res_ptr); i++) 
printf("%st", field->name); 
printf("\n"); 
/*按行输出結果*/ 
for (i = 1; i < row; i++) { 
result_row = mysql_fetch_row(res_ptr); 
for (j = 0; j < column; j++) 
printf("%st", result_row[j]); 
printf("\n"); 
} 
} 
/*不要忘了关闭连接*/ 
mysql_close(&my_connection); 
} 
} 
} 
int main(int argc, char *argv[]) { 
/*测试下向里面插入数据*/ 
char *query; 
char *exe = "insert into student values('lala','hahhahah!');"; 
exe_sql(exe); 
*测试下查询*/ 
query="select * from student;"; 
query_sql(query); 
return 0; 
} 

[!--infotagslink--]

相关文章

  • C语言实现放烟花的程序

    这篇文章主要为大家详细介绍了C语言实现放烟花的程序,有音乐播放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-23
  • C语言中的字符(char)详细讲解

    本篇文章主要介绍C语言中char的知识,并附有代码实例,以便大家在学习的时候更好的理解,有需要的可以看一下...2020-04-25
  • 详解如何将c语言文件打包成exe可执行程序

    这篇文章主要介绍了详解如何将c语言文件打包成exe可执行程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-25
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • C语言中free函数的使用详解

    free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
  • C语言中计算正弦的相关函数总结

    这篇文章主要介绍了C语言中计算正弦的相关函数总结,包括正弦和双曲线正弦以及反正弦的函数,需要的朋友可以参考下...2020-04-25
  • 详解C语言中的rename()函数和remove()函数的使用方法

    这篇文章主要介绍了详解C语言中的rename()函数和remove()函数的使用方法,是C语言入门学习中的基础知识,需要的朋友可以参考下...2020-04-25
  • MYSQL数据库使用UTF-8中文编码乱码的解决办法

    1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
  • C语言中求和、计算平均值、方差和标准差的实例

    这篇文章主要介绍了C语言中求和、计算平均值、方差和标准差的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-10
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • C语言的基本语法详解

    本篇文章主要讲解C语言 基本语法,这里提供简单的示例和代码来详细讲解C语言的基本语法,开始学习C语言的朋友可以看一下,希望能够给你带来帮助...2021-09-18
  • 修改MySQL数据库中表和表中字段的编码方式的方法

    今天向MySQL数据库中的一张表添加含有中文的数据,可是老是出异常,检查程序并没有发现错误,无奈呀,后来重新检查这张表发现表的编码方式为latin1并且原想可以插入中文的字段的编码方式也是latin1,然后再次仔细观察控制台输...2014-05-31
  • mysql数据库中的information_schema和mysql可以删除吗?

    新装的mysql里面有两个数据库:information_schema 和 mysql 。他们是干么用的?可以删除么?当然是不可以删除的。 1.information schema 是mysql系统用的所有字典信息,包括数据库系统有什么库,有什么表,有什么字典,有什么存...2014-05-31
  • C语言中send()函数和sendto()函数的使用方法

    这篇文章主要介绍了C语言中send()函数和sendto()函数的使用方法,是C语言入门学习中的基础知识,需要的朋友可以参考下...2020-04-25
  • C语言实现从文件读入一个3*3数组,并计算每行的平均值

    今天小编就为大家分享一篇C语言实现从文件读入一个3*3数组,并计算每行的平均值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-25
  • 使用C语言操作文件的基本函数整理

    这篇文章主要介绍了使用C语言操作文件的基本函数整理,包括创建和打开以及关闭文件的操作方法,需要的朋友可以参考下...2020-04-25
  • C语言中memcpy 函数的用法详解

    这篇文章主要介绍了C语言中memcpy 函数的用法详解的相关资料,需要的朋友可以参考下...2020-04-25
  • C语言中查找字符在字符串中出现的位置的方法

    这篇文章主要介绍了C语言中查找字符在字符串中出现的位置的方法,分别是strchr()函数和strrchr()函数的使用,需要的朋友可以参考下...2020-04-25
  • C语言菜鸟基础教程之a++与++a

    很多同学在学习c语言的时候是不是会碰到a++和++a都有甚么作用啊。今天我们就来探讨下...2020-04-25
  • C语言实现时间戳转日期的算法(推荐)

    下面小编就为大家带来一篇C语言实现时间戳转日期的算法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-04-25