Linux下 C語言 Mysql操作和字元集設定,linuxmysql

來源:互聯網
上載者:User

Linux下 C語言 Mysql操作和字元集設定,linuxmysql
一、C語言 Mysql操作二、建立資料庫和表

mysql> use TemWetDatabase changedmysql> 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 <mysql/mysql.h>#include <stdio.h>#include <stdlib.h>#include <string.h>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<mysql_num_fields(res);t++){//結果集的列的數量              printf("%s\t",row[t]);             }         printf("\n");         int wet = atoi(row[2]);         printf("%d\n",wet);        }        mysql_free_result(res);//操作完畢,查詢結果集        }        mysql_close(&mysql);//關閉資料庫連接    }mysql_library_end();//關閉MySQL庫return EXIT_SUCCESS;}

編譯c檔案:
# gcc sqltest.c -o sqltest -lmysqlclient

編譯成功,執行成功.

四、字元集設定

插入一條帶中文的資料,但是卻出現了中文亂碼的問題。這應該是資料庫的字元編碼問題了。

解決方案:
修改MySQL的設定檔/etc/mysql/my.cnf

儲存,並重新啟動mysql服務。
查看資料庫的字元集:mysql> show variables like 'character_set_%';

刪除之前的資料庫資料表,重建立立,並插入資料,完美支援中文。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.