mysql insert error with uft-8 unicode
I want to insert some simple data
the query is:
INSERT INTO categories_lang(category_id,language_id,name,description,alias) VALUES (7,'nl','éésgdsfgsdfgdfsgë','','')
the query is correct
it works when I insert normal chars (no french things like ë and é).
But when I do, the query inserts an empty description field in the table.
When I run the query in heidsql , it d开发者_JAVA百科oes work.
What can be wrong here?
Thanks
From the MySQL documentation:
The default character set for th MySQL client programs mysql, mysqladmin, mysqlcheck, mysqlimport, and mysqlshow is determined as follows:
- In the absence of other information, the programs use the compiled-in default character set, usually latin1.
- The programs support a
--default-character-set option, which enables users to specify the character set explicitly to override whatever default the client otherwise determines.When a client connects to the server, it sends the name of the character set that it wants to use. The server uses the name to set the
character_set_client,character_set_results, andcharacter_set_connectionsystem variables. In effect, the server performs aSET NAMESoperation using the character set name.With the mysql client, if you want to use a character set different from the default, you could explicitly execute
SET NAMESevery time you start up. However, to accomplish the same result more easily, you can add the--default-character-setoption setting to your mysql command line or in your option file. For example, the following option file setting changes the three connection-related character set variables set to koi8r each time you invoke mysql:[mysql] default-character-set=koi8rIf you are using the mysql client with auto-reconnect enabled (which is not recommended), it is preferable to use the charset command rather than
SET NAMES. For example:mysql> charset utf8 Charset changedThe charset command issues a
SET NAMESstatement, and also changes the default character set that mysql uses when it reconnects after the connection has dropped.
Before executing your query, send this one to server:
SET NAMES utf8
Note, that is is exactly 'utf8', not 'utf-8'.
If you want to avoid related problems in the future, I advice you to do SET NAMES utf8 every time right after connecting to mysql - it will save you a lot of pain.
加载中,请稍侯......
精彩评论