C语言对mysql数据库的操作
原文:C语言对mysql数据库的操作

这已经是一相当老的话题。不过今天我才首次使用,把今天的一些体会写下来,也许能给一些新手带来一定的帮助,更重要的是供自己今后忘记的怎么使用而进行查阅的!

我们言归正传
1.头文件:
#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h> //这个是必需要包含的,下面对mysql的所有操作函数,都出自这里
2.定义一个MYSQL变量:
MYSQL mysql;
这里MYSQL是一个用于连接MySql数据库的变量。
在后面对mysql数据库的操作中,我们就用这个MYSQL变量作为句柄的。
3.定义数据库参数:
char host[32]=”localhost”;  
       char user[32]=”username”;  
       char passwd[32]=”pwd”; 
       char dbname[32]=”testdb”; 
4.数据库操作
1).初始化数据库:
        mysql_init(&mysql);
       2).连接数据库:
           mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0);
         我们在操作时,可以对以上的函数进行if测试,如果初始化或者连接出错,作出相应提示,以便调试。
5.对数据库的操作:
         Mysql_query(&mysql, “select * from testdb where condition”);
         我们在实际操作中,为了更方便的使用程序中的某些变量,我们将会用到一个函数:
         int sprintf(char *str, const char *format, …);
         这个函数用来格式化我们的字符串,然后将变量按照给你的格式,赋给第一个参数。
         我们使用这个方法方法可以很方便的使用我们的变量来对数据库进行操作。例如我们将要进行数据库的查询操作,我们就可以这样使用:
         sprintf(sql,”select * from testdb where username = ‘%s’”, u_name);
         然后使用mysql_query(&mysql, sql)进行查询。
        
         其实大家已经注意到了,在sprintf函数中第二个参数是我们非常熟悉的sql语句,只不过在条件的右端使用了类似输出函数的格式符,因为我们使用了变 量。当然,在没有变量的时候,我们可以省去第三个参数,但是这样,我们使用sprintf的作用也就随之消失了。 
        大家对sql语句的操作一定比我更加熟悉,因此,关于删除和修改的例子我们就不过列举了。
6.关闭数据库连接:        
     Mysql_close(&mysql);        
也许大伙都使用过php对mysql进行操作。也许也已经发现,在c语言中,对mysql数据库的操作和php有很大的相似之处。
下面我赋上一段小小的代码,来结束这篇文档!:)希望大家给予指点。
#include <stdio.h>
#include <mysql/mysql.h>
#include <stdlib.h>
#include <errno.h>
#include <syslog.h>
MYSQL mysql;
main(){   
         char host[32]=”localhost”; // mysql host
         char user[32]=”username”;//mysql user name
         char passwd[32]="pwd";        //mysql pwd
         char dbname[32]=”testdb”;//mysql db
         
         
          
       if( mysql_init(&mysql) == NULL )
         {  
                 syslog(LOG_USER|LOG_INFO,”inital mysql handle error\n”);
                  return 1; 
        }
         if (mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0) == NULL)
         {
                   syslog(LOG_USER|LOG_INFO, “Failed to connect to database: Error: %s\n”,mysql_error(&mysql));
                  return 1; 
        }
        else syslog(LOG_USER|LOG_INFO, “connect to database: \n”);
        printf(”connected to the db!\n”); 
        int a = find_ps(); 
        printf(”the num is:%d\n”,a); 
        db_close(); 
        return 0;}int db_close(){
        mysql_close(&mysql);
        return 0;
       }
      int  find_ps (){
         MYSQL_ROW m_row;
         MYSQL_RES *m_res;
         char sql[1024],username[32];
         int res=1;
         int *id; 
sprintf(sql,”select * from testdb where user_name = ‘%s’”, u_name);
         if(mysql_query(&mysql,sql) != 0)
         {
                   syslog(LOG_USER|LOG_INFO, “select ps_info Error: %s\n”,mysql_error(&mysql));       
                   return res;        
         }        
         m_res = mysql_store_result(&mysql);
         if(m_res==NULL)
         {
                   syslog(LOG_USER|LOG_INFO, “select username Error: %s\n”,mysql_error(&mysql)); 
                   res = 3;
                   return res;
         }
         }
         mysql_free_result(m_res);
         return res;} 
7.编译:
别忘了加上库位置,否则编译无法通过!
gcc  -L/usr/lib/mysql –lmysqlclient func.c -o func
呵呵,别忘记哦!

posted on 2014-12-09 08:46 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/4152404.html

C语言对mysql数据库的操作相关推荐

  1. linux用c创建数据库,使用c语言实现linux数据库的操作

    前言:上一篇讲解了linux下使用命令行操作数据库,这篇继续讲解怎么使用c语言实现linux数据库的操作. 使用c语言实现环境搭建:既然我们要使用c语言实现linux数据库操作,那么首先我们得先把数据 ...

  2. DSP学习 -- C语言实现MySQL数据库操作

    如需转载请注明出处 https://juyou.blog.csdn.net/article/details/109259673 要实现在VS上使用C语言操作MySQL数据库.接下来看一下该怎么操作. ...

  3. C语言(APL指令)对mysql数据库的操作-----连接、读取、写入、修改、删除(保姆级讲解)

    目录 前言: C语言操作mysql前的准备工作 1.C语言连接mysql数据库 函数介绍 (1)mysql_ini() 函数 (2)mysql_library_init()函数 (3)mysql_re ...

  4. Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统

    /******************************************************************** * 标题:C语言链接mysql数据库,实现可以增删改查的角色 ...

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

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

  6. C#语言连接Mysql数据库实现增删改查

    C#语言连接Mysql数据库实现增删改查 实现效果如图 在此之前先下载一个mysql.dll 库 如下 链接:https://pan.baidu.com/s/17Nv_1W3KbXfWgdOvWf_S ...

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

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

  8. 通过图形界面对MySQL数据库进行操作

    MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...

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

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

最新文章

  1. Editplus快捷键大全
  2. 穷举 迭代 while
  3. P1466 集合 Subset Sums 搜索+递推+背包三种做法
  4. 男人是大猪蹄子的证据找到了!
  5. JAVA进阶开发之(数组练习题)
  6. 20201125:力扣第216场周赛(下)
  7. 巧用ftp命令(一)--利用ftp分发ssh密钥
  8. Pytorch基础(五)nn模块及optimizer
  9. 关于自学的又一点思考
  10. comparator比较器用法_电压跟随器的这些点,确定都懂了吗?如果设计成同相端追随反向端会怎样? #运放...
  11. Java基础SE.03.Java面向对象
  12. python微博评论爬虫_详解用python写网络爬虫-爬取新浪微博评论
  13. 扫描二维码 扫码打电话 可以打电话的二维码
  14. 微信小程序布局 底部位置固定例子
  15. html做qq钓鱼网站,QQ钓鱼网站是什么?
  16. 论文阅读SG-PBFT: a Secure and Highly Efficient Blockchain PBFT Consensus Algorithm for IoV
  17. python开发桌面软件实例-Python开发的第一步:利用Python开发一个桌面小程序
  18. C语言实现设置桌面壁纸
  19. 人事工作中的Python运用——离职证明生成器
  20. 使用密钥方式登录阿里云服务器

热门文章

  1. kali2020进入单模式_蚂蚁集团技术专家山丘:性能优化的常见模式及趋势
  2. 奇异值分解 SVD 的数学解释
  3. 深度学习编译器Data Flow和Control Flow
  4. 北汽蓝谷和北汽新能源
  5. TensorFlow优化器及用法
  6. 从C到C++过渡的3个原因
  7. 编译器设计-有限自动机
  8. Android动画之帧动画和补间动画
  9. MySQL数据库+命令大全+常用操作
  10. Uncaught SyntaxError: Unexpected token