c语言-mysql操作">一、C语言 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;

创建数据表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
编译成功,执行成功.

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

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

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

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