C语言mysql_query()插入数据库,中文乱码问题解决

Posted 梦想是优秀社畜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言mysql_query()插入数据库,中文乱码问题解决相关的知识,希望对你有一定的参考价值。

一、乱码原因:

数据显示乱码的原因,一般只有一个,就是数据输入方和接收方或者展示方的编码格式不一致。

乱码展示

二、解决步骤:

解决方法就是同步数据库和mysql_query()插入语句的字符编码格式,这里以最常用的utf8为例:

1.数据库编码设置

a.执行以下命令进入需要改变编码格式的数据库

use database_name; // database_name 改成自己的数据库名称

b.执行以下命令改变数据库编码格式

ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  // database_name 改成自己的数据库名称,如果是Mysql5的版本报错,可以把uft8mb4换成utf8

c.执行以下命令查看数据库现在的编码格式,看看改变成功了没有

show variables like 'character_set_database';

d.exit;退出Mysql

e.重启Mysql服务(以下是ubuntu系统的做法)

sudo service mysql restart

2.mysql_query()编码

// 初始化连接时设置字符集utf8

mysql_options(con, MYSQL_SET_CHARSET_NAME, "utf8mb4");

// 插入操作之前设置字符集utf8

mysql_query(mysql, "set names 'utf8'");

// 再进行插入操作

mysql_query(mysql, "insert into ...........'");


记录一下遇到的问题, 希望能帮到你~~觉得有用的话可以三连一下哈哈哈哈 ~~多谢!

表格数据插入到数据库

if($_POST){
$localhost=‘127.0.0.1‘;
$r=‘root‘;
$p=‘wuweijian‘;
$line= mysql_connect($localhost,$r,$p);
mysql_query(‘set names utf8‘);
mysql_query(‘use php2016‘);
$usename=$_POST[‘usename‘];
$email=$_POST[‘email‘];
@$sex=(int)$_POST[‘sex‘];
$age=(int)$_POST[‘age‘];
$chusheng=$_POST[‘chusheng‘];
$guanji=$_POST[‘guanji‘];

echo $sql="insert into lianxi values(null,$usename,$email,$sex,$age,$chusheng,$guanji)";
// $sql="insert into lianxi values(null,‘$usename‘,‘$email‘,$sex,$age,‘$chusheng‘,‘$guanji‘)";

$dijiuwanzuoye=mysql_query($sql);

mysql_error();

if($dijiuwanzuoye){
echo ‘成功‘;
}else{
echo ‘失败‘;
}
}else{
$str="<form action=‘dijiuwanzuoye.php‘ method=‘post‘>";
$str.=‘用户名: <input type=text name="usename" > <br/>‘;
$str.=‘性别: <input type="radio" name="sex" value="1"> 男 <input type="radio" name="sex" value="2"> 女 <br/>‘;
$str.=‘邮箱: <input type=text name="email"> <br/>‘;
$str.=‘年龄:<input type=text name="age">‘;
$str.=‘籍贯:<input type=text name="guanji">‘;
$str.=‘出生:<input type=text name="chusheng">‘;
$str.=‘<input type=submit value="提交">‘;
$str.="</form>";
echo $str;
}

 

//数据库
create table lianxi1(
id int unsigned primary key auto_increment,
usename varchar(20),
sex varchar(20),
age int(50),
chusheng int,
guanji varchar(20),
email int
);

以上是关于C语言mysql_query()插入数据库,中文乱码问题解决的主要内容,如果未能解决你的问题,请参考以下文章

可以乱序插入向量吗?

PHPexcel 导入import 数据到 mysql: mysql 查询数据是否存在, 如果存在返回id, 不存在, 插入返回id. 2) mysql_query , mysql_connect,

怎么往mysql中写入数据?

MySQL C语言连接

MySQL C语言连接

MySQL C语言连接