zoukankan      html  css  js  c++  java
  • node操作mysql插入数据异常,incorrect string value

    产生的原因

    我在创建表的时候,并没有设定字符编码,所以,默认的字符编码是 latin1

    在我插入数据的时候,我的一个字段name设定的是varchar(20) 其实,这时的编码就是 latin1 所以,在前端插入数据,在前端和node后端的数据都没问题,能够正常显示,但是插入就报错,异常。

    解决办法

    修改mysql中的字段的编码,数据库的编码:

    1、修改数据库的编码

    mysql>alter database "数据库名" character set utf8;

    2、查看数据库的编码

    mysql> show variables like 'character_set_database';

    3、查看数据表的编码格式

    mysql> show create table "表名称";

    4、修改表的编码格式

    mysql> alter table "表名" character set utf8;

    tips: 在你创建表的时候,你的编码不是utf8,如果你的字段已经在修改编码之前已经创建,你会发现,字段的编码格式并没有改变,所以需要使用下面的语句,针对字段进行编码格式的修改。 看 第7句

    5、创建数据库时指定数据库的字符集

    mysql>create database "数据库名" character set utf8;

    6、创建数据表时指定数据表的编码格式

    create table tb_books (
         name varchar(45) not null,
         price double not null,
         bookCount int not null,
         author varchar(45) not null 
     ) default charset = utf8;
    

    7、修改字段的编码方式:

    mysql>alter table <表名> change <字段名> <字段名> <类型> character set utf8;

    示例:mysql>alter table user change username username varchar(20) character set utf8 not null;

    8、 修改一张表所有字段的编码格式

    mysql>alter table “表名” convert to character set utf8;

    9、添加外键

    示例: mysql>alter table tb_product add constraint fk_1 foreign key(factoryid) references tb_factory(factoryid);
    mysql>alter table <表名> add constraint <外键名> foreign key<字段名> REFERENCES <外表表名><字段名>;

    10、删除外键

    mysql>alter table “表名” drop foreign key “外键名”;

    参考链接 : https://www.cnblogs.com/codeplus/archive/2011/08/02/2125546.html

  • 相关阅读:
    Spring Security(09)——Filter
    Spring Security(08)——intercept-url配置
    Spring Security(07)——缓存UserDetails
    Spring Security(06)——AuthenticationProvider
    Spring Security(05)——异常信息本地化
    Spring Security(04)——认证简介
    xss小总结
    xss hack学习靶场 writeup
    sqlmap使用
    sqli-labs writeup(less1---less38)
  • 原文地址:https://www.cnblogs.com/xiaqilin/p/8698267.html
Copyright © 2011-2022 走看看