原文: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
     呵呵,别忘记哦!

C语言对mysql数据库的操作的更多相关文章

  1. Linux centos 7/ubantu下: 用 C 语言连接 MySQL数据库

    前言:最近用IPC.socket做ATM.聊天项目,考虑到需要用到数据库,所以总结一下centos.ubantu环境下怎么用C语言操作数据库,例如常见的增删改查等! 一.Centos环境安装mysql ...

  2. C语言连接MySql数据库

    C语言连接MySql数据库(CodeBlocks) 操作系统:Windows7(32位)编译软件:Code::Blocks 10.05数 据 库:mysql-5.1.62-win32 数据库内的数据: ...

  3. 使用c语言实现linux数据库的操作

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

  4. 使用C语言调用mysql数据库编程实战以及技巧

    今天编写使用C语言调用mysql数据库编程实战以及技巧.为其它IT同行作为參考,当然有错误能够留言,共同学习. 一.mysql数据库的C语言经常使用接口API 1.首先当然是链接数据库mysql_re ...

  5. Mysql数据库基础操作

    Mysql数据库基础操作 在mysql数据库中开启使用tab键补全功能 1)修改主配置文件/etc/mysql/my.cnf(mysql和mariadb目录有些不同) vim /etc/mysql/m ...

  6. zabbix数据库mariadb从服务器迁移到云mysql数据库的操作

    zabbix数据库mariadb从本机迁移到云mysql数据库的操作 1.将zabbix数据库导出,并导入到云数据库中 由于数据库较大,如果直接使用shell会话中断会导致数据库导出或者导入失败,使用 ...

  7. DBA必备:MySQL数据库常用操作和技巧

    DBA必备:MySQL数据库常用操作和技巧 2011-02-25 15:31 kaduo it168 字号:T | T MySQL数据库可以说是DBA们最常见和常用的数据库之一,为了方便大家使用,老M ...

  8. Database学习 - mysql 数据库 表操作

    mysql 数据库 表操作 创建数据表 基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 ...

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

    C语言连接mysql数据库,需要相应的头文件和lib文件,如果你安装Mysql数据库,会在安装目录下找到这些库文件,如果没有安装,也可以在网上找到 我这里也有一份网上找到的:/201205/other ...

随机推荐

  1. WPF学习(9)样式和行为

    在asp.net世界中,我们的美工人员会为我们准备好静态页面,它注意包括三个部分:html.css和js.而在WPF世界里,也同样有着类似这三个部分的静态页面:Xaml.Style和Behaviors ...

  2. 装双系统(win7/win8/ubuntu)问题总结

    1.假设你要安装双系统,装系统是最好安装winows,然后再装ubuntu,因此,不解决它自己入选,我一般装ubuntu时刻.第一分区删除.然后用U硬盘直接安装ubuntu.在这一刻ubuntu将投入 ...

  3. CentOS 忘记 root password处理

    在倒计时启动时间,按任意键进入,例如下面的页面 输入 e. 进入这个页面.上下移动至高亮条到中间 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ29yZV ...

  4. HDOJ 1753 明朝A+B

     http://acm.hdu.edu.cn/showproblem.php? pid=1753 大明A+B Time Limit: 3000/1000 MS (Java/Others)    M ...

  5. python中and和or的使用方法

    今天看了一个源代码,甚是对python不解,于是查了下资料,只是纠正下网上的老兄的解释 python 中的and从右到左计算表达式.若全部值均为真,则返回最后一个值.若存在假,返回第一个假值. or是 ...

  6. HDU 3366 Passage (概率DP)

    Passage Problem Description Bill is a millionaire. But unfortunately he was trapped in a castle. The ...

  7. springMVC+angular+bootstrap+mysql的简易购物网站搭建

    springMVC+angular+bootstrap+mysql的简易购物网站搭建 介绍 前端的css框架用了bootstrap, 以及bootstrap的JS组件, 以及很好用的angular(a ...

  8. Cisco笔试——2014年

    笔试时间:11月1日(周六)下午13:00-14:10 申请者考场地点:上海市徐汇区梅陇路130号华东理工大学徐汇校区第六教学楼六大 我报的思科的软件开发software,属于(常规) 一共70多道题 ...

  9. Cocos2d-X字体

    Cocos2d-X顺便文本显示在以下三个: CCLabelTTF: 使用系统字体.每一个字符串会生成一个纹理.显示效率比較低下,适合不变化的文字 CCLabelAtlas: 使用NodeAtlas优化 ...

  10. STUN协议简介

    STUN简要 STUN(Simple Traversal of UDP over NATs,NAT 的UDP简单穿越)是一种网络协议.它同意位于NAT(或多重NAT)后的client找出自己的公网地址 ...