中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > C/C++
C连MYSQL
作者:未知 时间:2005-09-13 23:27 出处:Blog.ChinaUnix.net 责编:chinaitpower
              摘要:C连MYSQL
用C连MYSQL及其简单操作的示例

1、数据库名:test,表名:PAY(工资表),结构如下:

CREATE TABLE PAY (
  FNUMBER varchar(6) NOT NULL default '',
  FNAME varchar(50) default NULL,
  FSEX varchar(10) NOT NULL default '',
  FAGE int(3) default NULL,
  FPAY decimal(7,2) NOT NULL default '0.00',
  PRIMARY KEY  (FNUMBER)
) TYPE=MyISAM;

2、数据如下:

INSERT INTO PAY VALUES ('000001', 'Jack', 'men', 25, '5000.00');
INSERT INTO PAY VALUES ('000002', 'Aaron', 'men', 30, '7000.00');
INSERT INTO PAY VALUES ('000003', 'Ruth', 'women', 22, '4000.00');
INSERT INTO PAY VALUES ('000004', 'Tom', 'men', 28, '7200.00');
INSERT INTO PAY VALUES ('000005', 'Pearson', 'men', 20, '4000.00');

3、源程序如下(c_mysql.c):

#include "stdio.h"
#include "stdlib.h"
#include "mysql.h"

#define HOST "127.0.0.1"
#define USER "root"
#define PASSWORD "654321"
#define DB "test"

main()
{
        MYSQL mysql;
        MYSQL_RES *result;
        MYSQL_ROW row;

        char number[10]="";
        char name[50]="";
        char sex[10]="";
        int age;
        float pay;

        char query[200]="";
        char delete[200]="";
        char insert[400]="";
        char update[200]="";
        float max_pay;

        mysql_init(&mysql);
        if ( !mysql_real_connect(&mysql,HOST,USER,PASSWORD,DB,0,NULL,0) ) { /*连接*/
                printf("connect mysql fail!!!\n");
                exit(0);
        }

        strcpy(query,"SELECT `FNUMBER`, `FNAME`, `FSEX`, `FPAY` FROM `PAY` WHERE `FAGE` > 20"); /*查询*/
        if (mysql_query(&mysql,query) != 0) { /*执行SQL语句*/
                printf("SELECT ERROR!!!\n");
                mysql_close(&mysql);
                exit(0);
        }
        result = mysql_store_result(&mysql);
        while ( ( row = mysql_fetch_row(result) ) ) {
                strcpy(number,row[0]);
                strcpy(name,row[1]);
                strcpy(sex,row[2]);
                pay = atof(row[3]);
                if ( pay > max_pay )
                        max_pay=pay;
                printf("number: %s\t name: %s\t sex: %s\t pay: %f\t\n",number,name,sex,pay);
        }
        printf("max_pay:%f\n",max_pay);
        mysql_free_result(result);

        sprintf(delete,"DELETE FROM `PAY` WHERE `FPAY` = %f",max_pay);
        if (mysql_query(&mysql,delete) != 0) {
                printf("DELETE ERROR!!!\n");
                mysql_close(&mysql);
                exit(0);
        }
        else
                printf("DELETE SUCCEED!!!\n");

        strcpy(insert,"INSERT INTO `PAY` (`FNUMBER`, `FNAME`, `FSEX`, `FAGE`, `FPAY`) VALUES ('000002', 'Aaron', 'men', 30, '6000.00')");
        if (mysql_query(&mysql,insert) != 0) {
                printf("INSERT ERROR!!!\n");
                mysql_close(&mysql);
                exit(0);
        }
        else
                printf("INSERT SUCCEED!!!\n");

        strcpy(update,"UPDATE `PAY` SET `FPAY`=`FPAY` + 1000 WHERE 1");
        if (mysql_query(&mysql,update) != 0) {
                printf("UPDATA ERROR!!!\n");
                mysql_close(&mysql);
                exit(0);
        }
        else
                printf("UPDATA SUCCEED!!!\n");
        mysql_close(&mysql);
}

4、编译:gcc -I/usr/local/mysql/include/mysql -lmysqlclient -o c_mysql.o c_mysql.c    其中"/usr/local/mysql/include/mysql "为系统中MYSQL的路径。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有