数据库、表、字段都使用latin1字符集。
之前写入中文都没问题,但今天发现,中文含有 ’玕‘ 这个字的时候,就会报1064错误:
Error 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near...登录数据库把字符集改为utf8之后再执行SQL语句,还是一样报错,只要把这个字去掉就能成功写入。
如果是在MySQL控制台输入SQL语句执行,MySQL会自动加一个单引号,就像这样:
mysql> INSERT INTO ...;
          '>
也就是MySQL认为语句中缺少单引号,但我看玕字的编码并没有哪个字节与单引号一样。这到底是什么原因?

解决方案 »

  1.   

    1、有可能它不是一个字,先确定是不是表情什么的。
    2、你show variables like 'char%'看下是不是都是utf8.
      

  2.   


    别用latin1字符串,如果是中文的可以用gbk字符,如果是多字符,那可以用utf8.你可以在客户端输入这个命令试试:set names gbk; 然后再运行你的insert语句
      

  3.   


    另外,你还可以直接把服务器的参数修改了,比如:[mysql]
    default-character-set=gbk
      

  4.   

    set names 'gbk'; 然后再试。
      

  5.   

    csdn app不是很好用啊