Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15724
  • 博文数量: 7
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 25
  • 用 户 组: 普通用户
  • 注册时间: 2015-11-05 15:48
个人简介

蜗牛

文章分类

全部博文(7)

文章存档

2015年(7)

我的朋友
最近访客

分类: Mysql/postgreSQL

2015-11-19 20:26:25

mys.h

  1. #ifndef __MYS_H__
  2. #define __MYS_H__

  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include "/usr/include/mysql/mysql.h"

  7. extern int record_change(const char* db_name,const char* sql_cmd);
  8. extern int record_search_id(const char* db_name, const char* sql_cmd);
  9. extern int record_search_statue(const char* db_name, const char* sql_cmd);

  10. #endif

main.c

  1. #include "mys.h"
  2. int main(void)
  3. {
  4.     const char* db_name;
  5.     const char* sql_cmd;
  6.     int id;
  7.     int statue;    
  8.     /*往数据库中增删改记录*/
  9.     db_name="smart";
  10.     sql_cmd="insert into User(username,password,statue) values(\"13825259141\",\"ttt\",1)";
  11.     record_change(db_name,sql_cmd);

  12.     /*特定条件查询具体数据库记录*/
  13.     sql_cmd="select user_id from User where username=\"13642245956\"";
  14.     id=record_search_id(db_name,sql_cmd);
  15.     printf("%d\n",id);
  16.     //查找状态
  17.     sql_cmd="select statue from User where username=\"13642245956\"";
  18.     statue=record_search_statue(db_name,sql_cmd);
  19.     printf("%d\n",statue);

  20.     return 0;
  21. }

ctrdb.c

  1. #include "mys.h"

  2. /*往数据库中增删改记录*/
  3. int record_change(const char* db_name,const char* mysql_cmd)
  4. {
  5.     MYSQL conn;
  6.     int res;
  7.     mysql_init(&conn); //初始化 连接
  8.     if(mysql_real_connect(&conn,"localhost","root","ttt",db_name,0,NULL,CLIENT_FOUND_ROWS)){
  9.         printf("connect success\n");

  10.         res=mysql_query(&conn,mysql_cmd);
  11.         if (!res)
  12.         {
  13.             printf("Inserted %lu rows\n",(unsigned long)mysql_affected_rows(&conn));//里头的函数返回受表中影响的行数
  14.         }
  15.         else{
  16.             fprintf(stderr, "Insert error %d: %s\n",mysql_errno(&conn),mysql_error(&conn)); //分别打印出错误代码及详细信息
  17.         }
  18.         mysql_close(&conn);
  19.     }
  20.     else{
  21.         fprintf(stderr, "Connection failed\n");
  22.         if (mysql_errno(&conn))
  23.         {
  24.             fprintf(stderr, "Connection error %d:%s\n",mysql_errno(&conn),mysql_error(&conn));
  25.         }
  26.     }
  27.     return EXIT_SUCCESS;
  28. }

  29. /*特定条件查询具体数据库记录*/
  30. int record_search_id(const char* db_name, const char* sql_cmd)
  31. {
  32.     MYSQL conn;
  33.     MYSQL_RES *res_ptr; /*指向检索的结果存放地址的指针*/
  34.     MYSQL_ROW sqlrow; /*返回的记录信息*/
  35.     MYSQL_FIELD *fd; /*字段结构指针*/

  36.     int res; /*执行查询操作后的返回标志*/
  37.     int id;

  38.     mysql_init(&conn);

  39.     /*mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0) == NULL)*/
  40.     if (mysql_real_connect(&conn, "localhost", "root","ttt","smart",0,NULL,CLIENT_FOUND_ROWS))
  41.     {
  42.         res = mysql_query(&conn,sql_cmd);
  43.         if (res)
  44.         {
  45.             printf("SELECT error:%s\n",mysql_error(&conn));
  46.         }
  47.         else
  48.         {
  49.             res_ptr=mysql_store_result(&conn);
  50.             sqlrow=mysql_fetch_row(res_ptr);
  51.             id=*sqlrow[0]-'0';

  52.             if (mysql_errno(&conn))
  53.             {
  54.                 fprintf(stderr,"Retrive error:s\n",mysql_error(&conn));
  55.             }
  56.             mysql_free_result(res_ptr);
  57.         }
  58.         mysql_close(&conn);
  59.     }
  60.     else
  61.     {
  62.         fprintf(stderr, "Connection failed\n");
  63.         if (mysql_errno(&conn))
  64.         {
  65.             fprintf(stderr, "Connection error %d: %s\n",mysql_errno(&conn),mysql_error(&conn));
  66.         }
  67.     }
  68.     return id;

  69. }
  70. //查找状态
  71. int record_search_statue(const char* db_name, const char* sql_cmd)
  72. {
  73.     MYSQL conn;
  74.     MYSQL_RES *res_ptr; /*指向检索的结果存放地址的指针*/
  75.     MYSQL_ROW sqlrow; /*返回的记录信息*/
  76.     MYSQL_FIELD *fd; /*字段结构指针*/

  77.     int res; /*执行查询操作后的返回标志*/
  78.     int statue;

  79.     mysql_init(&conn);

  80.     /*mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0) == NULL)*/
  81.     if (mysql_real_connect(&conn, "localhost", "root","ttt","smart",0,NULL,CLIENT_FOUND_ROWS))
  82.     {
  83.         res = mysql_query(&conn,sql_cmd);
  84.         if (res)
  85.         {
  86.             printf("SELECT error:%s\n",mysql_error(&conn));
  87.         }
  88.         else
  89.         {
  90.             res_ptr=mysql_store_result(&conn);
  91.             sqlrow=mysql_fetch_row(res_ptr);
  92.             statue=*sqlrow[0]-'0';

  93.             if (mysql_errno(&conn))
  94.             {
  95.                 fprintf(stderr,"Retrive error:s\n",mysql_error(&conn));
  96.             }
  97.             mysql_free_result(res_ptr);
  98.         }
  99.         mysql_close(&conn);
  100.     }
  101.     else
  102.     {
  103.         fprintf(stderr, "Connection failed\n");

  104.         if (mysql_errno(&conn))
  105.         {
  106.             fprintf(stderr, "Connection error %d: %s\n",mysql_errno(&conn),mysql_error(&conn));
  107.         }
  108.     }
  109.     return statue;
  110. }
编译:gcc -o test ctrdb.c main.c `mysql_config --cflags --libs`
搭建Lamp服务器可以直接操作Mysql数据库。
在Linux使用MySQL示例:
  1. mysql -uroot -p

  2. create database test;

  3. use test;

  4.  create table User(user_id int not null primary key auto_increment,username varchar(255) not null unique,password varchar(255) not null,statue int);

  5. insert into children values(5,"花儿",10);

  6. create table Dev(dev_id int not null primary key auto_increment,devname varchar(255),user_id int,statue int,constraint fk_UserDev foreign key (user_id) references User (user_id));

  7. insert into User(username,password,statue) values("13642245956","123456",1);

  8. insert into User(username,password,statue) values("18391390367","654321",1);

  9. insert into Dev(devname,user_id,statue) values("sunsangGlax6",1,0);



阅读(586) | 评论(0) | 转发(0) |
0

上一篇:Json和string的相互转化

下一篇:没有了

给主人留下些什么吧!~~