c语言对mysql操作_C语言对mysql数据库的操作

我们言归正传

1.头文件:

#include

#include

#include //这个是必需要包含的,下面对mysql的所有操作函数,都出自这里

2.定义一个MYSQL变量:

MYSQL mysql;

这里MYSQL是一个用于连接MySql数据库的变量。

在后面对mysql数据库的操作中,我们就用这个MYSQL变量作为句柄的。

3.定义数据库参数:

char host[32]=”localhost”;

char user[32]=”username”;

char passwd[32]=”pwd”;

char dbname[32]=”testdb”;

4.数据库操作

1).初始化数据库:

mysql_init(&mysql);

2).连接数据库:

mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0);

我们在操作时,可以对以上的函数进行if测试,如果初始化或者连接出错,作出相应提示,以便调试。

5.对数据库的操作:

Mysql_query(&mysql, “select * from testdb where condition”);

我们在实际操作中,为了更方便的使用程序中的某些变量,我们将会用到一个函数:

int sprintf(char *str, const char *format, …);

这个函数用来格式化我们的字符串,然后将变量按照给你的格式,赋给第一个参数。

我们使用这个方法方法可以很方便的使用我们的变量来对数据库进行操作。例如我们将要进行数据库的查询操作,我们就可以这样使用:

sprintf(sql,”select * from testdb where username = ‘%s’”, u_name);

然后使用mysql_query(&mysql, sql)进行查询。

其实大家已经注意到了,在sprintf函数中第二个参数是我们非常熟悉的sql语句,只不过在条件的右端使用了类似输出函数的格式符,因为我们使用了变

量。当然,在没有变量的时候,我们可以省去第三个参数,但是这样,我们使用sprintf的作用也就随之消失了。

大家对sql语句的操作一定比我更加熟悉,因此,关于删除和修改的例子我们就不过列举了。

6.关闭数据库连接:

Mysql_close(&mysql);

也许大伙都使用过php对mysql进行操作。也许也已经发现,在c语言中,对mysql数据库的操作和php有很大的相似之处。

下面我赋上一段小小的代码,来结束这篇文档!:)希望大家给予指点。

#include

#include

#include

#include

#include

MYSQL mysql;

main(){

char host[32]=”localhost”; // mysql host

char user[32]=”username”;//mysql user name

char passwd[32]="pwd";        //mysql pwd

char dbname[32]=”testdb”;//mysql db

if( mysql_init(&mysql) == NULL )

{

syslog(LOG_USER|LOG_INFO,”inital mysql handle error\n”);

return 1;

}

if (mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0) == NULL)

{

syslog(LOG_USER|LOG_INFO, “Failed to connect to database: Error: %s\n”,mysql_error(&mysql));

return 1;

}

else syslog(LOG_USER|LOG_INFO, “connect to database: \n”);

printf(”connected to the db!\n”);

int a = find_ps();

printf(”the num is:%d\n”,a);

db_close();

return 0;}int db_close(){

mysql_close(&mysql);

return 0;

}

int  find_ps (){

MYSQL_ROW m_row;

MYSQL_RES *m_res;

char sql[1024],username[32];

int res=1;

int *id;

sprintf(sql,”select * from testdb where user_name = ‘%s’”, u_name);

if(mysql_query(&mysql,sql) != 0)

{

syslog(LOG_USER|LOG_INFO, “select ps_info Error: %s\n”,mysql_error(&mysql));

return res;

}

m_res = mysql_store_result(&mysql);

if(m_res==NULL)

{

syslog(LOG_USER|LOG_INFO, “select username Error: %s\n”,mysql_error(&mysql));

res = 3;

return res;

}

}

mysql_free_result(m_res);

return res;}

7.编译:

别忘了加上库位置,否则编译无法通过!

gcc  -L/usr/lib/mysql –lmysqlclient func.c -o func

呵呵,别忘记哦!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值