无论我选择哪种字符集,当我运行mysql语句的时候出现:
#1366 - Incorrect integer value: '' for column 'sitelink_id' at row 1

解决方案 »

  1.   

    尽管高版本的mysql可以支持多种专用语言,但是对双字节语言依然支持的不好,尤其是中文
    --------------
    这是唠叨对于mysql5采用latin编码的一段解释。想问一下,latin在mysql5的编码选择中也有很多种,选择哪种?
      

  2.   

    latin1latin编码类型会自动根据上下文变换编码,这在web应用中是很重要的。虽然在大部分情况下还是需要人工干预的。当使用latin编码时,我们只是把mysql当成一个杂物间,分门别类的工作是自己完成的
    当然这就需要花费一些时间了
    mysql4.1.0以后出现了较强的语言编码处理机制,试图在内部实现编码的转换。这样当然要比自行编程来的要快,但这并不完全适合web应用。因为web应用中语言编码太杂如果都采用单一编码,比如utf-8那么和latin又有什么区别呢?
    如果来源数据的编码是多样的,你还是需要通知mysql本次操作使用什么语言,既然如此何不就用latin编码呢?所以指定特定的编码类型比较适合桌面和特定任务的应用,由于可由mysql完成编码的转换而使运行效率得以提高我们使用数据库主要是看重他具有强大的检索功能。但是对于东方文字来说,几乎所有的基于西方文字的检索机制都是残废的。所以我不建议你去弄清楚那些较复杂的变换关系,只简单的使用latin,除非你是从事数据库开发的人员(要是的话,我们就不会在这个版面讨论问题了)当建库时采用utf8字符集时,你向数据库插入的数据也需要是utf8编码的。这是基本常识
    当待插入的数据不是utf8编码时就需要通知mysql现在要用什么编码进行处理或者自己先对数据做编码转换。
    但恰恰是在很多情况下我们并不能明确的知道待处理的数据是什么编码的,于是也就不能通知mysql正确的编码而造成“错误”
    而使用latin时就不存在这个问题
      

  3.   

    一般用utf8_general_ci的,latin1_general_ci的,
    这个不同Collation主要是决定了字符是如何排序的,
    因此general的一般是最普通适用的phpmyadmin里有一个页面是简要的说明,mysql手册也有更详细点的说明。比如可以比较一下这两个,一个是大小写相关,一个是大小写无关的。
    latin1_general_ci    West European (multilingual), case-insensitive   
    latin1_general_cs    West European (multilingual), case-sensitive   
      

  4.   

    #1366 - Incorrect integer value:
    这个mysql错误代码是什么意思?