mysql成批删除c语言_C语言操作mysql范例(增删查改)

#include

#include "/usr/local/mysql/include/mysql.h"

void printResult(MYSQL *mysql);

int main()

{

MYSQL mysql;

MYSQL_RES * result;

mysql_init(&mysql);

mysql_real_connect(&mysql, "127.0.0.1", "root", "jesse", NULL, 3355, NULL, 0);

mysql_query(&mysql, "set names 'utf8'");

mysql_query(&mysql, "drop database if exists tmpdb");

mysql_query(&mysql, "create database tmpdb");

mysql_query(&mysql, "use tmpdb");

mysql_query(&mysql, "create table tmptab(c1 int, c2 varchar(20), c3 varchar(20))");

mysql_query(&mysql, "insert into tmptab values(101, '姓名1', 'address1'), (102, '姓名2', 'address2'), (103, '姓名3', 'address3')");

mysql_query(&mysql, "select * from tmptab");

printf("--增加数据测试--\n");

printResult(&mysql);

mysql_query(&mysql, "delete from tmptab where c1 = 101");

mysql_query(&mysql, "select * from tmptab");

printf("--删除数据测试--\n");

printResult(&mysql);

mysql_query(&mysql, "update tmptab set c3 = 'address4' where c1 = 103");

mysql_query(&mysql, "select * from tmptab");

printf("--更新数据测试--\n");

printResult(&mysql);

mysql_query(&mysql, "delete from tmptab");

mysql_query(&mysql, "select * from tmptab");

printf("--清空数据测试--\n");

printResult(&mysql);

mysql_query(&mysql, "drop table tmptab");

mysql_query(&mysql, "drop database tmpdb");

mysql_close(&mysql);

}

void printResult(MYSQL *mysqlPrint)//打印结果集(此处传入指针,而非内容)

{

MYSQL_RES * result;

int numFields = 0;

int numRows = 0;

MYSQL_FIELD * field;

MYSQL_ROW row;

int i = 0;

result = mysql_store_result(mysqlPrint);//将查询的全部结果读取到客户端

numFields = mysql_num_fields(result);//统计结果集中的字段数

numRows = mysql_num_rows(result);//统计结果集的行数

while(field = mysql_fetch_field(result))//返回结果集中的列信息(字段)

printf("%s\t", field->name);

printf("\n");

if(result)

{

while(row = mysql_fetch_row(result))//返回结果集中行的记录

{

for(i = 0; i < numFields; i++)

{

printf("%s\t", row[i]);

}

printf("\n");

}

}

mysql_free_result(result);//释放result空间,避免内存泄漏

}

[root@localhost /]# mysql_config --cflags

-I/usr/local/mysql/include -fPIC -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1

[root@localhost /]# mysql_config --libs

-L/usr/local/mysql/lib -lmysqlclient -lpthread -lm -lrt -ldl    mysql_config --cflags  编译器标志,用于查找包含文件,以及编译libmysqlclient库时所要使用的关键编译器标志和定义。

mysql_config --libs  与MySQL客户端库进行链接所需的库和选项。

4.2 编译源文件

[root@localhost /]# gcc -o MysqlCTest MysqlCTest.c -I/usr/local/mysql/include -L/usr/local/mysql/lib -lmysqlclient

4.3 执行编译好的文件

[root@localhost /]# ./MysqlCTest

--增加数据测试--

c1 c2 c3

101 姓名1 address1

102 姓名2 address2

103 姓名3 address3

--删除数据测试--

c1 c2 c3

102 姓名2 address2

103 姓名3 address3

--更新数据测试--

c1 c2 c3

102 姓名2 address2

103 姓名3 address4

--清空数据测试--

c1 c2 c3

为确保程序写入数据库以及从数据库读出时不出现乱码,需要做如下配置:

c客户端程序级别:

c程序文件设置编码 utf8,如

mysql_query(&mysql, "set names 'utf8'");

mysql数据库级别:

设置MySQL数据库客户端及服务端配置为utf8

例如:

在my.cnf配置文件中配置

[mysql]

default_character_set=utf8

[mysqld]

character-set-server=utf8

collation-server=utf8_bin

****************************************************************************************

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值