C语言访问MYSQL数据库的完整的代码例子

1、手写安装带mysql sdk 的mysql
2、新建控制台项目,项目属性中把
C:\Program Files\MySQL\MySQL Server 5.5\include 加入“包含目录”
把C:\Program Files\MySQL\MySQL Server 5.5\lib 加入“库目录”

3、stdafx.h中加入
#include <winsock.h> //注意顺序,要放在mysql.h前
#include <mysql.h>//控制台项目中要在mysql.h之前include <winsock.h>

//注意lib添加到“库目录”中,而不是“引用目录”中
#pragma comment(lib, "libmysql.lib")

4、把libmysql.dll放到生成的exe目录下

5、主要的几个例子:

//执行基本查询
void test1()
{MYSQL *pConn;pConn = mysql_init(NULL);//第2、3、4、5参数的意思分别是:服务器地址、用户名、密码、数据库名,第6个为mysql端口号(0为默认值3306)if(!mysql_real_connect(pConn,"localhost","root","root","test",0,NULL,0)){  printf("无法连接数据库:%s",mysql_error(pConn));return;}mysql_query(pConn,"set names gbk");//防止乱码。设置和数据库的编码一致就不会乱码//SET NAMES x 相当于 SET character_set_client = x;SET character_set_results = x;SET character_set_connection = x;//写set character set gbk;查询不会乱码,但是参数化插入会报错。而set names gbk则都不会乱码//mysql_real_query比mysql_query多了个参数: 字符串query的长度, 所以适合有二进制数据的query, 而mysql_query的字符串query不能包含二进制,因为它以\0为结尾//mysql_query() 不能传二进制BLOB字段,因为二进制信息中的\0会被误判为语句结束。 mysql_real_query() 则可以。if(mysql_query(pConn,"select * from persons")){printf("查询失败:%s",mysql_error(pConn));return;}//mysql_store_result是把查询结果一次性取到客户端的离线数据集,当结果比较大时耗内存。//mysql_use_result则是查询结果放在服务器上,客户端通过指针逐行读取,节省客户端内存。但是一个MYSQL*连接同时只能有一个未关闭的mysql_use_result查询MYSQL_RES *result = mysql_store_result(pConn);MYSQL_ROW row;while(row = mysql_fetch_row(result)){printf("%s %s\n",row[1],row[2]);}mysql_free_result(result);mysql_close(pConn);
}//获得更新行数
void test2()
{MYSQL *pConn;pConn = mysql_init(NULL);if(!mysql_real_connect(pConn,"127.0.0.1","root","root","test",0,NULL,0)){printf("无法连接数据库:%s",mysql_error(pConn));return;}if(mysql_query(pConn,"update persons set Age=Age+1")){printf("执行失败:%s",mysql_error(pConn));return;}printf("更新成功,共更新完成%d条",mysql_affected_rows(pConn));mysql_close(pConn);
}//获得自增id
void test3()
{MYSQL *pConn;pConn = mysql_init(NULL);if(!mysql_real_connect(pConn,"127.0.0.1","root","root","test",0,NULL,0)){printf("无法连接数据库:%s",mysql_error(pConn));return;}mysql_query(pConn,"set names gbk");if(mysql_query(pConn,"insert into persons(Name,Age) values('如鹏网',100)")){printf("执行insert失败%s",mysql_error(pConn));return;}printf("执行insert成功,新id=%d",mysql_insert_id(pConn));mysql_close(pConn);}//参数化查询
void test4()
{MYSQL* pConn;pConn = mysql_init(NULL);if(!mysql_real_connect(pConn,"127.0.0.1","root","root","test",0,NULL,0)){printf("数据库连接失败:%s",mysql_error(pConn));return;}mysql_query(pConn,"set names gbk");MYSQL_STMT    *stmt;    MYSQL_BIND    bind[2];   memset(bind,0,sizeof(bind));//把is_null、length等字段默认值设置为NULL等默认值,否则执行会报错stmt = mysql_stmt_init(pConn);  char* insertSQL="insert into persons(Name,Age) values(?,?)";if (mysql_stmt_prepare(stmt, insertSQL, strlen(insertSQL)))    {    fprintf(stderr, " mysql_stmt_prepare(), INSERT failed,%s\n",mysql_error(pConn)); return;    }    bind[0].buffer_type= MYSQL_TYPE_STRING;    bind[0].buffer= "黑马";    bind[0].buffer_length= strlen("黑马"); //如果设定了buffer_length,则可以不试用lengthint age=3;bind[1].buffer_type= MYSQL_TYPE_LONG;    bind[1].buffer= &age;  bind[1].buffer_length = sizeof(age);if (mysql_stmt_bind_param(stmt, bind))    {    fprintf(stderr, " mysql_stmt_bind_param() failed %s\n", mysql_stmt_error(stmt));    return;}    if (mysql_stmt_execute(stmt))    {    fprintf(stderr, " mysql_stmt_execute(), failed %s\n", mysql_stmt_error(stmt));    return;   }    mysql_stmt_close(stmt);mysql_close(pConn);  printf("参数化执行SQL结束");
}

MySQL笔记12:C语言访问MYSQL数据库的完整的代码例子相关推荐

  1. C语言访问MYSQL数据库的完整的代码例子

    1.手写安装带mysql sdk 的mysql 2.新建控制台项目,项目属性中把 C:\Program Files\MySQL\MySQL Server 5.5\include 加入"包含目 ...

  2. Mysql —— linux下使用c语言访问mySql数据库

    示例1: #include<stdio.h> #include<mysql.h> int main() { MYSQL mysql; mysql_init(&mysql ...

  3. 使用C语言访问MySQL数据库基础

    使用C语言访问MySQL数据库基础 一.MySQL管理 包含在MySQL发行版中的一些有用的工具程序使管理工作变得相当容易. 除mysqlshow命令以外,所有的MySQL命令都接受所示的3个标准参数 ...

  4. python语言数据库规模_Python语言访问MySQL数据库

    4.使用python语言访问MySQL 1)pymysql库:Python语言访问MySQL接口 -安装: 在线:pip install pymysql 离线: 第一步:下载安装包,下载地址: htt ...

  5. c语言访问mysql,C语言访问mysql数据库

    mysql中新建的数据库为hyx,hyx中的表为my_schema,表中的数据为下图: 编写代码,访问表中的数据,测试代码如下: #include "stdafx.h" #incl ...

  6. MySQL 笔记3 -- SQL 语言

    MySQL 笔记3 – SQL 语言 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 一. SQL语言规范 S ...

  7. mysql c测试程序_Linux平台下从零开始写一个C语言访问MySQL的测试程序

    Linux 平台下从零开始写一个 C 语言访问 MySQL 的测试程序 2010-8-20 Hu Dennis Chengdu 前置条件: (1) Linux 已经安装好 mysql 数据库: (2) ...

  8. 利用C语言访问mysql

    利用C语言访问mysql 一.相关头文件以及函数: 1.连接数据库使用的头文件和库文件 2.初始化连接句柄 3.连接数据库 4.关闭连接 5.提取结果 6.获取结果集的行数 7.取出结果集中的一行记录 ...

  9. Linux下使用C语言访问MySQL函数

    //mysqlVersion.c /************************************************************* FileName : mysqlVers ...

最新文章

  1. dubbo could not get local host ip address will use 127.0.0.1 instead 异常处理
  2. java8异步_Java8新特性之:CompletableFuture
  3. python redis 消息队列
  4. 趣文:如果编程语言是车
  5. loadrunner之协议选择
  6. Spring学习总结(11)——Spring JMS MessageConverter介绍
  7. 本地虚拟机部署java项目(tomcat8 ,jdk8,VMWare)
  8. 08 域控 架构主机 转移_win2000域控迁移至win2008
  9. c 语言 时空权衡的计数排序程序,算法设计和分析部分算法伪代码.doc
  10. charset参数 sqluldr2_SQLULDR2
  11. 社科研究中的问卷设计详解——结合论文具体例子来看
  12. python 解决爬虫得到诸如\u65e2 unicode码转中文和字符串转json的问题
  13. 桌面内存管理器(dwn.exe)占用内存过高时怎么办?
  14. pybind11学习 | 在Python中构建编译生成pyd文件
  15. lunch time food
  16. 2021年1月全球最畅销智能手机排行榜出炉
  17. yolov5中ap_per_class函数
  18. 史上最全的android studio 插件大全整理
  19. Ubuntu操作-03 设置开机自启
  20. sql语句查询到上周、上个月的数据

热门文章

  1. python学习Day14 带参装饰器、可迭代对象、迭代器对象、for 迭代器工作原理、枚举对象、生成器及生成表达式...
  2. SVA Function Coverage
  3. 3组现代软件工程第三次作业
  4. android 原色调渲染
  5. Hibernate的四种典型例子(增删改查)
  6. 导出 C/C++ API 给 Lua 使用[转]
  7. glReadPixels的用法和说明
  8. 【TJOI/HEOI2016】求和
  9. Open***+AD+Google authenticator 安装、配置
  10. 人人都要学一点深度学习(1)- 为什么我们需要它