亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

教你解決往mysql數(shù)據(jù)庫(kù)中存入漢字報(bào)錯(cuò)的方法

 更新時(shí)間:2021年05月06日 11:53:43   作者:牛哄哄的柯南  
這篇文章主要介紹了Mysql基礎(chǔ)之教你解決往數(shù)據(jù)庫(kù)中存入漢字報(bào)錯(cuò)的方法,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)mysql的小伙伴們有非常好的幫助,需要的朋友可以參考下

一、遇到的問(wèn)題

在向數(shù)據(jù)庫(kù)中存入漢字時(shí)遇到這樣的問(wèn)題:

Cause: java.sql.SQLException: Incorrect string value: ‘\xE6\x9F\xAF\xE5\x8D\x97' for column ‘user_name' at row 1

在這里插入圖片描述

二、分析問(wèn)題

這是由于數(shù)據(jù)庫(kù)設(shè)計(jì)有問(wèn)題導(dǎo)致的,當(dāng)初創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候直接選擇的默認(rèn),沒(méi)有修改為utf-8,后來(lái)嘗試手動(dòng)修改還是不行。

嘗試把數(shù)據(jù)庫(kù)和表的默認(rèn)字段改為utf8,但是還是不能存漢字。

在這里插入圖片描述
在這里插入圖片描述

三、真正的問(wèn)題

在這里插入圖片描述

真正的問(wèn)題打開(kāi)表的信息可以看到latin1的存在,這是因?yàn)榧词刮覀兒竺媸謩?dòng)修改字段類型還是修改不了的,就像上面即使我們修改了,可是表信息還是沒(méi)有改掉,真正的解決辦法:1、要不我們重新創(chuàng)建數(shù)據(jù)庫(kù),把創(chuàng)建的時(shí)候就設(shè)置成utf8(有點(diǎn)費(fèi)勁),2、要不就是下面的解決辦法(也不是那么輕松,如果涉及的字段比較多的話),導(dǎo)出并修改sql語(yǔ)句,然后在重新執(zhí)行sql語(yǔ)句。

四、解決辦法

把我們的數(shù)據(jù)庫(kù)導(dǎo)出為sql文件:

/*
SQLyog Enterprise v12.08 (64 bit)
MySQL - 5.7.31 : Database - data_test
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`data_test` /*!40100 DEFAULT CHARACTER SET latin1*/;

USE `data_test`;

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(50) CHARACTER SET latin1 NOT NULL COMMENT '賬號(hào)',
  `password` varchar(50) CHARACTER SET latin1 NOT NULL COMMENT '密碼',
  `user_state` varchar(10) CHARACTER SET latin1 NOT NULL DEFAULT '1' COMMENT '狀態(tài),邏輯刪除',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1;

/*Data for the table `user` */

LOCK TABLES `user` WRITE;

insert  into `user`(`user_id`,`user_name`,`password`,`user_state`) values (1,'keafmd','keafmd','1'),(3,'21312321','123','0'),(11,'213','213','1'),(12,'keafmd','666','0');

UNLOCK TABLES;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

就像上面說(shuō)的一樣我們發(fā)現(xiàn)了latin1的身影,那么我們就把latin1全部替換為utf8。

替換后的sql文件:

/*
SQLyog Enterprise v12.08 (64 bit)
MySQL - 5.7.31 : Database - data_test
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`data_test` /*!40100 DEFAULT CHARACTER SET utf8  */;

USE `data_test`;

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(50) CHARACTER SET utf8  NOT NULL COMMENT '賬號(hào)',
  `password` varchar(50) CHARACTER SET utf8  NOT NULL COMMENT '密碼',
  `user_state` varchar(10) CHARACTER SET utf8  NOT NULL DEFAULT '1' COMMENT '狀態(tài),邏輯刪除',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

/*Data for the table `user` */

LOCK TABLES `user` WRITE;

insert  into `user`(`user_id`,`user_name`,`password`,`user_state`) values (1,'keafmd','keafmd','1'),(3,'21312321','123','0'),(11,'213','213','1'),(12,'keafmd','666','0');

UNLOCK TABLES;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

選擇執(zhí)行sql腳本,選擇修改后的sql文件

在這里插入圖片描述

此時(shí)再查看表信息

在這里插入圖片描述

這樣就全部是utf8了,這樣基本上可以肯定解決問(wèn)題了。

五、解決效果

測(cè)試驗(yàn)證下是否真正的解決問(wèn)題了:

在這里插入圖片描述

在這里插入圖片描述

到此這篇關(guān)于Mysql基礎(chǔ)之教你解決往數(shù)據(jù)庫(kù)中存入漢字報(bào)錯(cuò)的方法的文章就介紹到這了,更多相關(guān)往數(shù)據(jù)庫(kù)存入漢字報(bào)錯(cuò)的解決方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論