C语言连接MySQL中文问题
在学习<Linux程序设计>第8章MySQL数据库8.3节:
使用C语言访问MySQL访问数据库时尝试把SQL数据换成了中文,但是在运行示例程序时终端输出却乱码,MySQL C 语言连接默认字符集是latin1
查了下API找到如下函数可解决中文乱码问题。
int
mysql_set_character_set(
MYSQL *
mysql,
char
*
csname)
描述
该函数用于为当前连接设置默认的字符集。字符串csname指定了1个有效的字符集名称。连接校对成为字符集的默认校对。该函数的工作方式与SET NAMES语句类似,但它还能设置mysql-
>
charset的值,从而影响了由mysql_real_escape_string(
)
设置的字符集。
该函数是在MySQL 5.
0.
7中增加的。
返回值
0表示成功,非0值表示出现错误。
示例:
#
include
<
stdlib.
h>
#
include
<
stdio.
h>
#
include
"mysql.h"
MYSQL my_connection;
MYSQL_RES *
res_ptr;
MYSQL_ROW sqlrow;
void
display_row(
)
;
int
main(
int
argc,
char
*
argv[
]
)
{
int
res;
mysql_init(
&
my_connection)
;
if
(
mysql_real_connect(
&
my_connection,
"localhost"
,
"rick"
,
"secret"
,
"foo"
,
0,
NULL
,
0)
)
{
/* 设置数据库默认字符集 */
if
(
mysql_set_character_set(
&
my_connection,
"utf8"
)
)
{
fprintf
(
stderr
,
"错误, %s\n"
,
mysql_error(
&
my_connection)
)
;
}
res =
mysql_query(
&
my_connection,
"SELECT childno, fname, age from children WHERE age > 5"
)
;
if
(
res)
{
&nb
相关文档:
#include
#include
#define u 20
int i,j,n,m;
float Ix[u],I[u][u],H_X,H_Y,H_XY,I_XY,H_XpY,Pypx[u][u],Px[u],H_YpX,Py[u],Pxpy[u][u],Pxy[u][u];
/*定义的Ix[]=I(x[i])自信息;I[][]=I(x[i];y[j])互信息;H_X=H(X)平均自信息;H_XY=H(XY)联合熵;
I_XY=I(X;Y)平均互信息;H_XpY=H(X|Y ......
1、编辑MySQL配置文件:
windows环境中:%MySQL_installdir%\my.ini //一般在MySQL安装目录下有my.ini即MySQL的配置文件。
linux环境中:/etc/my.cnf
在[MySQLd]配置段添加如下一行:
skip-grant-tables
保存退出编辑。
2、然后重启MySQL服务
windows环境中:
net stop MySQL
net start MySQL
linux环境中:
/e ......
作者:敖士伟
Mysql 用的是Linux (non RPM packages)
一、将mysql-5.5.0-m2-linux-i686-glibc23.tar.gz下载到/home/ikmb 并在当前目录解压;
……..
mysql-5.5.0-m2-linux-i686-glibc23/data/mysql/
mysql-5.5.0-m2-linux-i686-glibc23/data/test/
…………
二、创建MySQL组, ......
这段时间在学习C#,要连接mysql数据库,不知道怎么连接 ,后来goole了下,发现要下载驱动,顺便看了下连接的example code
代码和java里面的差很多,之前一直在学C++ 也学过一段时间的驱动开发,一听mysql驱动,也没在意, 驱动在心里一直都是很难
并且容易造成蓝屏,数据结构复杂的代名词,也就没在意,但是后来� ......