简单的实现增删查改的操作后,实现了一个先读写其中一个表的某两项内容,再把相关字符段写入到另外一张表中去。涉及到查询和插入两个步骤。

其中还涉及到汉字的读写和插入,会有字符的操作产生乱码。所以要先保证mysql的汉字字符编码,linux终端字符编码都是统一的。

/***
QueryAndInsert
***/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"mysql.h" int main()
{
printf("version = 1.0\n");
MYSQL mysql;
MYSQL_RES * res;
MYSQL_ROW row;
int r;
char* query;
char taskID[],taskName[];
char insert[];
int flag; mysql_init(&mysql);
//mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gdk");
if(!mysql_real_connect(&mysql,"localhost","root","mysql123","csql",,NULL,))
{
printf("Can't connect the mysql ! errInfo = [ %s ] ",mysql_error(&mysql));
}
else
{
//query part
printf("connect the mysql successfully! \n");
query = "select taskID,taskName from task where taskState=4 order by taskLastEditTime desc";
mysql_query(&mysql, "set names utf8");
flag = mysql_real_query(&mysql,query,(unsigned int )strlen(query));
if(flag)
{
printf("query failed\n");
return ;
}
else
{
printf("[%s] made....\n",query);
res = mysql_store_result(&mysql);
while(row = mysql_fetch_row(res))
{
sprintf(taskID,"%s",row[]);
sprintf(taskName,"%s",row[]);
}
}
}
printf("taskID = %s, taskName = %s\n",taskID,taskName);
sprintf(insert,"insert into EnvironmentRealData (TaskID,taskName) values(\'%s\',\'%s\');",taskID,taskName);
printf("insert = %s\n",insert);
//insert if(mysql_real_query(&mysql,insert,(unsigned int)strlen(insert)))
{
printf("insert data is faile\n");
return ;
}
else
{
printf("Insert successfully\n");
} mysql_close(&mysql);
return ;
}

gcc编译:gcc QueryAndInsert.c -o QueryAndInsert -I /usr/inlcude/mysql -L /usr/lib/mysql -lmysqlclient

C语言写数据库(二)的更多相关文章

  1. C语言写数据库(三)

    遇到的问题以及解决思路方法 1.外部导入数据库文件 进入mysql,创建数据库sh_robot source /home/exbot/sh_robot.sql 查看数据库编码格式 show varia ...

  2. C语言写数据库(一)

    /*** connect.c ***/ #include<stdio.h> #include<stdlib.h> #include"mysql.h" int ...

  3. C#语言和数据库基础

    第一章 第一个C#程序 Vs2012密钥 RBCXF-CVBGR-382MK-DFHJ4-C69G8 01..net和C#的区别 大概在2000年,微软推出了一种革命性的产品--.NET(战略) 目标 ...

  4. 《玩转D语言系列》二、D语言现状、基本规定和相关资源介绍

    这算是本系列文章的一个序吧,主要是为以后的学习做铺垫,文本分为三个部分,第一部分是对于网上一些比较旧的资料的问题的一些更正,当然我也不可能看过所有的资料,难免会有遗漏.第二部分是D语言最基本的规定,第 ...

  5. 《C#语言和数据库技术基础》单词必备

    <C#语言和数据库技术基础> 第一章1..NET Framework   框架2.sharp            尖锐,强烈的3.application      应用程序4.devel ...

  6. C语言与数据库操作入门

    https://blog.csdn.net/flyingqd/article/details/78763652 C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1 ...

  7. C语言与数据库操作入门(Win版)

    C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1387 数据库,DataBase,学C语言的是不是想说,很想爱她却并不容易呢?不用着急,C语言也可以操作数据库的 ...

  8. C语言写的流氓关机程序及破解

    记得大二刚开始接触电脑的那个时候,偶尔会弹出一个强制关机的窗口,当时没有办法,如下: 现在看来只是一个小程序而已,用C语言编写的: #include<windows.h> int main ...

  9. php调用一个c语言写的接口问题

    用php调用一个c语言写的soap接口时,遇到一个问题:不管提交的数据正确与否,都无法请求到接口 1.用php标准的soap接口去请求 2.拼接xml数据去请求 以上两种方式都不正确 解决办法:php ...

随机推荐

  1. vue组件添加事件@click.native

    1,给vue组件绑定事件时候,必须加上native ,否则会认为监听的是来自Item组件自定义的事件 2,等同于在子组件中:  子组件内部处理click事件然后向外发送click事件:$emit(&q ...

  2. 从入门到自闭之Python时间模块

    time模块:import time time.time():时间戳,是一个浮点数,按秒来计算 time.sleep():睡眠,程序暂停多少秒执行 python中时间日期格式化符号: 必背 %y 两位 ...

  3. python-day30(正式学习)

    单例模式 什么是单例模式 单例模式:基于某种方法实例化多次得到实例是同一个 为什么用单例模式 当实例化多次得到的对象中存放的属性都一样的情况,应该将多个对象指向同一个内存,即同一个实例 用类方法来实现 ...

  4. idea 新建maven项目时,避免每次都需要指定自己的maven目录

    01 .File->Other Settings -> Settings for New Project 02. 将Maven home directory目录修改成我们自己安装Maven ...

  5. Codeforces 1194C. From S To T

    传送门 首先贪心, $S$ 能和 $T$ 匹配就要尽量匹配,剩下的才让 $P$ 来补 在 $S$ 全部匹配上的情况下,看看 $P$ 是否有足够的字符即可 #include<iostream> ...

  6. laravel 5.7 引入Illuminate\Http\Request 在类内调用 Request 提示不存在的问题

    laravel报错: ReflectionException Class App\Http\Controllers\Request does not exist 解决办法: namespace App ...

  7. jQuery操作选中select下拉框的值

    js和jQuery联合操作dom真的很好用,如果不是专业前端人员的话,我觉得吧前端语言只要熟练掌握js和jQuery就可以了. 获取select下拉框的几种情况如下: 1.获取第一个option的值 ...

  8. pl_sql例题

    0. 准备工作: set serveroutput on hellowrold 程序 begindbms_output.put_line('hello world');end;/ [语法格式]--de ...

  9. KVM和Docker的对比

    虚拟化技术对比: KVM:全虚拟化,需要模拟各种硬件 docker:严格来说不算是虚拟化技术,只是进程隔离和资源限制 实例启动进程对比: 在kvm虚拟机中执行top命令,看宿主机进程树,根本看不到to ...

  10. npm上发布vue插件

    1.初始化项目 vue init webpack-simple XXXXX(此处为插件名) 使用vue创建一个简单的项目,删除src中除了main.js和app.vue外的文件,清空app.vue中无 ...