ubuntu c mysql_Ubuntu下MySql和C连接的一些问题

Ubuntu下MySql和C连接的一些问题

xinjinlong | 2010-11-15 17:28:01    阅读:3224

db6c9df9ccb71c554faea6ec7ad19010.png发布文章

接上一贴继续,主要是用C从MySql里读取数据,中间遇到了一些问题幸好本人平时为人和善终于把问题解决了,今天特拿来于各位分享,好了,闲话少说,步入正题:

第一,安装MySql:

1、sudo apt-get intsall mysql-server

2、sudo apt-get install mysql-client

3、判断是否安装成功:

sudo netstat -tap | grep mysql

如果安装成功会出现现面的提示:

tcp 0 0 localhost.localdomain:mysql *:* LISTEN

如果没有成功,重新启动MySql:sudo /etc/init.d/mysql restart

4、直接在中断下面进入MySql:sudo mysql -u root -p

第二:安装要和C 语言连接是的MySql的库文件和头文件:

sudo apt-get install libmysqlclient15-dev

你可以看看是否安装成功,运行下面命令:

cd /usr/include/mysql 查看头文件是否有

cd /usr/lib/mysql 查看库文件是否有

第三:编写测试实例

1、创建自己的数据库

登录MySql :create database db1和create table test

2、编写C语言测试程序:

//test.c

#include

#include

int main(int argc, char **argv)

{

MYSQL mysql_conn; /* Connection handle */

MYSQL_RES *mysql_result; /* Result handle */

MYSQL_ROW mysql_row; /* Row data */

int f1, f2, num_row, num_col;

if (mysql_init(&mysql_conn) != NULL)

{

if (mysql_real_connect(&mysql_conn, "localhost", "user",

"password", "db1", MYSQL_PORT, NULL, 0) != NULL)

{

mysql_query(&mysql_conn,"SET NAMES 'utf8' ");//为了防止有中文读出是??

if (mysql_query(&mysql_conn, "select * from test") == 0)

{

mysql_result = mysql_store_result(&mysql_conn);

num_row = mysql_num_rows(mysql_result);

/* Get the no. of row */

num_col = mysql_num_fields(mysql_result);

/* Get the no. of column */

printf("row=%d, col=%d\n",num_row,num_col);

for (f1 = 0; f1 < num_row; f1++)

{

mysql_row = mysql_fetch_row(mysql_result);

for (f2 = 0; f2 < num_col; f2++)

{

/* Fetch one by one */

printf("[Row %d, Col %d] ==> [%s]\n", f1, f2, mysql_row[f2]);

}

}

} else

{

(void) printf("Query fails\n");

}

} else

{

(void) printf("Connection fails\n");

}

} else

{

(void) printf("Initialization fails\n");

}

mysql_free_result(mysql_result);

mysql_close(&mysql_conn);

printf("quit\n");

return 0;

}

因为数据库里面有汉字,查了一些资料也要在连接数据源是设置字符集,但是就是不知道把这句:mysql_query(&mysql_conn,"SET NAMES 'utf8' ");

放到什么位置,程序明明已经来连接一次数据源,难道还要链接吗?

最后实在没有办法就连接两次,一次设置字符集,一次查询,谁知道成功读出汉字,可能是本人巧合,不求甚解吧?

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论

请登录...

登录后参与讨论

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值