原文: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. Objective-C路成魔【2-Objective-C 规划】

    郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 编译执行O ...

  2. Servlet实例解说

    打开昨天上午,负责人突然问我,client控制信息,如何让在后台?我想回答:假设总体提交form,在C#使用代码request获取表单的内容.假设局部提交,在用JS和Ajax交互,通过Ajax的ope ...

  3. web 环境项目(intellj部署的tomcat) 重启时报 Exception in thread "HouseKeeper" java.lang.NullPointerException (转)

    Exception in thread "HouseKeeper" java.lang.NullPointerException at org.logicalcobwebs.pro ...

  4. 彩色图像--色彩空间 CMY(K)场地

    得知DIP文章63日 转载请注明文章出处:http://blog.csdn.net/tonyshengtan .出于尊重文章作者的劳动,转载请标明出处!文章代码已托管.欢迎共同开发:https://g ...

  5. 菜鸟nginx源码剖析 框架篇(一) 从main函数看nginx启动流程(转)

    俗话说的好,牵牛要牵牛鼻子 驾车顶牛,处理复杂的东西,只要抓住重点,才能理清脉络,不至于深陷其中,不能自拔.对复杂的nginx而言,main函数就是“牛之鼻”,只要能理清main函数,就一定能理解其中 ...

  6. 谈到一些传统的企业网站SEO问题领域

    在网络营销中的时间越长,有时候,企业网站还是有一些传统做法不解.也许,这是它的思想的局限.比如,我最近来到了一个新的工作环境中发现,虽然公司是专业从事传统渠道已经很不错了,但对于网络营销渠道还有改进的 ...

  7. Oracle压缩总结2— 估计表压缩效应

    使用压缩前,我们可以估算压缩能有多大效果. 11gr2我已经能够使用dbms_comp_advisor,具体代码见附件.只需要运行两个文件dbmscomp.sql和prvtcomp.plb.然后使用D ...

  8. 简单的工具LogUtil、Toast

    简单的工具LogUtil.Toast     能够用了 import android.content.Context; import android.util.Log; import android. ...

  9. 【C语言的日常实践(八)】弦

    串数据类型是一个重要的,但C有没有明确的语言字符串数据类型.头文件string.h它包括大多数字符串处理函数. 故,有操作的串.通常包括string.h头文件. 1.字符串的长度:对字符串进行的操作中 ...

  10. Codeforces 479E Riding in a Lift(dp)

    题目链接:Codeforces 479E Riding in a Lift 题目大意:有一栋高N层的楼,有个无聊的人在A层,他喜欢玩电梯,每次会做电梯到另外一层.可是这栋楼里有个秘 密实验室在B层,所 ...