0

Linux下gcc中用c连接mysql

Posted in C at 九月 13th, 2011 / No Comments »

代码:

#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);
}

编译方法:

gcc -I /usr/include/mysql -l mysqlclient -o mysql.o mysql.c

其中”/usr/local/mysql/include/mysql “为系统中MYSQL的路径,此目录下应该包含文件mysql.h。

http://c.chinaitlab.com/cc/ccjq/200806/752206.html

Published in C
Tags: , ,

No Responses to “Linux下gcc中用c连接mysql”

Leave a Reply

请输入算式结果(看不清请点击图片)
(必须)