设为首页 加入收藏

TOP

Linux下C语言Mysql操作和字符集设置
2015-11-21 01:32:13 来源: 作者: 【 】 浏览:0
Tags:Linux 语言 Mysql 操作 字符集 设置
首先安转libmysql库。
# sudo apt-get install libmysql++-dev 把MySQL的库拷贝到公共库中。
# sudo cp -ri /usr/lib/mysql/* /usr/lib/ 配置MySQL库。
# mysql_config --cflags --libs

启动终端,输入以下命令,进入mysql。
# mysql -u username -p

创建一个数据库
mysql > create database TemWet;
db

创建数据表monitZ??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcixzZW5zZXJzo6yyorLlyOuy4srUyv2+3aGjPC9wPgoKCjxwcmUgY2xhc3M9"brush:sql;">mysql> use TemWet Database changed mysql> create table monitor -> ( -> Id int not null, -> monitor_name varchar(50), -> monitor_com varchar(50), -> primary key(Id) -> ); Query OK, 0 rows affected (0.10 sec)

三、编写c程序测试

c连接操作数据库代码示例:

#include 
#include 
#include 
#include 
static char* server_groups[]={"embedded","server","this_program_server",(char*)NULL};

int main(){

    MYSQL mysql;
    MYSQL_RES *res;
    MYSQL_ROW row;
    char sqlcmd[200];
    int t,r;
    mysql_init(&mysql);//初始化MYSQL标识符,用于连接
    if(!mysql_real_connect(&mysql,"localhost","root","root","sensers",0,NULL,0)){
      fprintf(stderr,"无法连接到数据库,错误原因是:%s/n",mysql_error(&mysql));

    }
    else {
         puts("数据库连接成功");
        //首先向数据库中插入一条记录
        //sprintf(sqlcmd,"%s","insert into friends (name,telephone) Values ('xx','xx')");
         //mysql_query(&mysql,sqlcmd);
         sprintf(sqlcmd,"%s","set names utf8;");
         t=mysql_real_query(&mysql,sqlcmd,(unsigned int)strlen(sqlcmd));
         sprintf(sqlcmd,"%s","select * from senser;");
         t=mysql_real_query(&mysql,sqlcmd,(unsigned int)strlen(sqlcmd));

         if(t){
             printf("查询数据库失败%s/n",mysql_error(&mysql));
        }
        else {
            res=mysql_store_result(&mysql);//返回查询的全部结果集
            while(row=mysql_fetch_row(res)){//mysql_fetch_row取结果集的下一行
             for(t=0;t

编译c文件:
# gcc sqltest.c -o sqltest -lmysqlclient

编译成功,执行成功.
suc

四、字符集设置

插入一条带中文的数据,但是却出现了中文乱码的问题。这应该是数据库的字符编码问题了。
lm

解决方案:
修改MySQL的配置文件/etc/mysql/my.cnf
fa

保存,并重新启动mysql服务。
查看数据库的字符集:mysql> show variables like "character_set_%';
cs

删除之前的数据库数据表,重新建立,并插入数据,完美支持中文。
zw

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MySQL中整各种int类型的范围和存.. 下一篇MySQL与php的连接操作要点

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: