怎么设置mysql数据库读取的字符集
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么设置mysql数据库读取的字符集相关的知识,希望对你有一定的参考价值。
参考技术A 修改数据库的字符集mysql>use mydb
mysql>alter database mydb character set utf-8;
创建数据库指定数据库的字符集
mysql>create database mydb character set utf-8;
通过配置文件修改:
修改/var/lib/mysql/mydb/db.opt
default-character-set=latin1
default-collation=latin1_swedish_ci
为
default-character-set=utf8
default-collation=utf8_general_ci
重起MySQL:
[root@bogon ~]# /etc/rc.d/init.d/mysql restart 参考技术B 在连接以后写上这么一句
mysqli_set_charset('数据库连接', 'utf8');
这样在读取数据库的时候能解决字符集问题, 如果在html还出现字符问题,那就在html页面设置一下字符集问题本回答被提问者采纳
c语言读取mysql库中的数据的程序头文件怎么设置
Mysql C API编程步骤1、首先我们要包含mysql的头文件,并链接mysql动态库。即添加以下语句:
#include <WinSock2.h> // 进行网络编程需要winsock2.h
#include <mysql.h>
#pragma comment(lib, “libmysql.lib”)
2、创建MYSQL变量。如:
MYSQL mysql;
3、初始化MYSQL变量。
mysql_init(&mysql);
4、调用mysql_real_connect函数连接Mysql数据库。mysql_real_connect函数的原型如下:
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,const char *user,const char *passwd,const char *db,unsigned int port,const char *unix_socket,unsigned long clientflag);
参数说明:mysql–前面定义的MYSQL变量;host–MYSQL服务器的地址;user–登录用户名;passwd–登录密码;db–要连接的数据库;port–MYSQL服务器的TCP服务端口;unix_socket–unix连接方式,为NULL时表示不使用socket或管道机制;clientflag–Mysql运行为ODBC数据库的标记,一般取0。连接失败时该函数返回0。
5、调用mysql_real_query函数进行数据库查询。mysql_real_query函数的原型如下:
int STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned long length);
参数说明:mysql–前面定义的MYSQL变量;q–SQL查询语句;length–查询语句的长度。
查询成功则该函数返回0。
6、通过调用mysql_store_result或mysql_use_result函数返回的MYSQL_RES变量获取查询结果数据。
两个函数的原型分别为:
MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql);
MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql);
这两个函数分别代表了获取查询结果的两种方式。第一种,调用mysql_store_result函数将从Mysql服务器查询的所有数据都存储到客户端,然后读取;第二种,调用mysql_use_result初始化检索,以便于后面一行一行的读取结果集,而它本身并没有从服务器读取任何数据,这种方式较之第一种速度更快且所需内存更少,但它会绑定服务器,阻止其他线程更新任何表,而且必须重复执行mysql_fetch_row读取数据,直至返回NULL,否则未读取的行会在下一次查询时作为结果的一部分返回,故经常我们使用mysql_store_result。
7、调用mysql_fetch_row函数读取结果集数据。
上述两种方式最后都是重复调用mysql_fetch_row函数读取数据。mysql_fetch_row函数的原型如下:
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);
参数result就是mysql_store_result或mysql_use_result的返回值。
该函数返回MYSQL_ROW型的变量,即字符串数组,假设为row,则row〔i〕为第i个字段的值。当到结果集尾部时,此函数返回NULL。
8、结果集用完后,调用mysql_free_result函数释放结果集,以防内存泄露。mysql_free_result函数的原型如下:
void STDCALL mysql_free_result(MYSQL_RES *result);
9、不再查询Mysql数据库时,调用mysql_close函数关闭数据库连接。mysql_close函数的原型为:
void STDCALL mysql_close(MYSQL *sock); 参考技术A mysql也是c\c++的,,,,一开始就是c、c++使用的,官方有文档的
~~~~~
安装的mysql里面有头文件.h、和库文件.lib 参考技术B 1、添加头文件路径(MySQL安装路径中的include路径)
2、添加库文件(直接从MySQL安装路径中copy libmysql.lib即可)
3、编程操作数据库
代码
// AccessToMySQL.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <Windows.h>
#include <mysql.h>
#pragma comment(lib,"libmysql.lib")
MYSQL mysql;
MYSQL_RES* result;
MYSQL_ROW row;
int main(void)
//init the mysql parameter
mysql_init(&mysql);
//connect the database
if(!mysql_real_connect(&mysql,"127.0.0.1","root","111","mytest",3306,NULL,0))
printf(mysql_error(&mysql));
printf("\nCannot access to the database!!!\n");
system("pause");
exit(-1);
//construct the query SQL statements
char* sql="select * from student where name='";
char dest[100]="";
strcat(dest,sql);
printf("Please enter the student name:");
char name[10]="";
gets(name);
strcat(dest,name);
strcat(dest,"'");
//excute the SQL statements
if(mysql_query(&mysql,dest))
printf("Cannot access the database with excuting \"%s\".",dest);
system("pause");
exit(-1);
//deal with the result
result=mysql_store_result(&mysql);
if(mysql_num_rows(result))
while((row=mysql_fetch_row(result)))
printf("%s\t%s\t%s\n",row[0],row[1],row[2]);
//release the resource
mysql_free_result(result);
mysql_close(&mysql);
system("pause");
return 0;
以上是关于怎么设置mysql数据库读取的字符集的主要内容,如果未能解决你的问题,请参考以下文章