mysql版本4.1.x,数据库存储数据为utf-8格式,用phpmyadmin将数据导出为utf-8格式的sql文件,再用phpmyadmin import sql file(选择utf-8格式的文件),由于包含中文字符,在insert into语句中会提示语法错误,比如insert into table(`field1`) values('$value'),$value中包含utf-8的中文字,phpmyadmin在import会转码,就可能出现单引号字符,故而报错。怎么解决呀!

解决方案 »

  1.   

    show variables like '%char%'character_set_client       latin1
    character_set_connection   latin1
    character_set_database     latin1
    character_set_results      latin1
    character_set_server       latin1
    character_set_system       utf8
    character_sets_dir         E:\Program Files\EasyPHP1-8\mysql\share\charsets/
      

  2.   

    你的系统的编码全市LATIN1,出错是很正常的。在MY.CNF 或者MY.INI里添加[mysql]default-character-set=utf8[mysqld]default-character-set=utf8然后重新启动MYSQL服务器。
      

  3.   

    试过了,还是报错务器: localhost   数据库: site99_bayarea  
    错误 
    您的 SQL 查询可能有错。如果可能的话,以下会列出 MySQL 服务器的错误输出,这可能对您解决问题有一定的帮助作用。ERROR: 引号不配对 @ 18724
    STR: "
    SQL: --  
    .......
      

  4.   

    把你的SQL文件帖以部分。让大家看看是什么编码?
      

  5.   

    UTF-8编码比如下面的语句INSERT INTO `pmd_listings` (`firmstate`, `selector`, `userid`, `firmname`, `firmname_en`, `ad`, `business`, `loc_one`, `loc_two`, `loc_three`, `loc_four`, `loc_text`, `address`, `zip`, `phone`, `fax`, `mobile`, `im`, `manager`, `www`, `coupons`, `prices`, `images`, `documents`, `ip`, `date`, `date_update`, `ip_update`, `counter`, `webcounter`, `mailcounter`, `rating`, `votes`, `banner_show`, `banner_click`, `price_show`, `reserved_1`, `reserved_2`, `reserved_3`, `counterip`, `mail`, `flag`, `comment`, `date_upgrade`, `showtop`, `video_showtop`, `list_lang`, `dailydeal`, `bayarea`, `recommend`, `videotitle`, `street`, `prints`) VALUES ('on', 41, 44, ' 周氏汽车及车身修理厂', 'Chow&#039;s Automotive Inc.', '精修各国汽车, 服务湾区十多年', 'Turn Up, 机种维修, 引颈维修, 车身维修及喷油, 离合器, 避震器, 冷气, 水箱,电路系统, 汽车玻璃, 车架矫正<br><br>免费估价, 修车期间免费租车, 免费拖车<br><br>精通国, 粤, 英语', 9, 146, 0, 0, '市中心夹Harrison Street 在Freeway 旁', '384 7th Street', '', '415-863--2283', '', '', '', '周生', '', 2, 1, 5, 1, '75.30.185.82', '2006-10-15', '2006-10-19', '58.213.38.155', 132, 48, NULL, 0, 7, 0, 0, 0, '', '', '', '60.191.80.89', '', 'D', '', '0000-00-00', 0, 0, 'ch', 0, 4, '', NULL, NULL, 0),
      

  6.   

    不好贴附件,
    http://sunsuny.ys168.com/
    进入sql目录大大帮忙看看
      

  7.   

    我的编码设置:mysql> show variables like '%char%';
    +--------------------------+--------------------------------+
    | Variable_name            | Value                          |
    +--------------------------+--------------------------------+
    | character_set_client     | utf8                           |
    | character_set_connection | utf8                           |
    | character_set_database   | utf8                           |
    | character_set_filesystem | binary                         |
    | character_set_results    | utf8                           |
    | character_set_server     | utf8                           |
    | character_set_system     | utf8                           |
    | character_sets_dir       | E:\Lamp\MYSQL2\share\charsets\ |
    +--------------------------+--------------------------------+
    8 rows in set (0.00 sec)
    导入你的数据,没有任何错误,只是一堆的WARNINGmysql> source c:\\99savings_Bayarea_DB.sql
    .....
    Records: 8  Duplicates: 0  Warnings: 0Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected, 1 warning (0.06 sec)Query OK, 707 rows affected (0.09 sec)
    Records: 707  Duplicates: 0  Warnings: 0Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected, 1 warning (0.08 sec)Query OK, 21 rows affected (0.00 sec)
    Records: 21  Duplicates: 0  Warnings: 0Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected, 1 warning (0.08 sec)Query OK, 4445 rows affected (0.08 sec)
    Records: 4445  Duplicates: 0  Warnings: 0Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected, 1 warning (0.06 sec)Query OK, 70 rows affected (0.00 sec)
    Records: 70  Duplicates: 0  Warnings: 0Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected, 1 warning (0.06 sec)Query OK, 38 rows affected (0.00 sec)
    Records: 38  Duplicates: 0  Warnings: 0Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected, 1 warning (0.06 sec)Query OK, 9 rows affected (0.00 sec)
    Records: 9  Duplicates: 0  Warnings: 0Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected, 1 warning (0.06 sec)Query OK, 64 rows affected (0.00 sec)
    Records: 64  Duplicates: 0  Warnings: 0Query OK, 0 rows affected, 1 warning (0.02 sec)Query OK, 0 rows affected, 1 warning (0.03 sec)Query OK, 9 rows affected (0.00 sec)
    Records: 9  Duplicates: 0  Warnings: 0Query OK, 0 rows affected, 1 warning (0.01 sec)Query OK, 0 rows affected, 1 warning (0.05 sec)Query OK, 1 row affected (0.00 sec)Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected, 1 warning (0.06 sec)Query OK, 3261 rows affected (0.16 sec)
    Records: 3261  Duplicates: 0  Warnings: 0mysql> show warnings;
    Empty set (0.00 sec)mysql>
      

  8.   

    晕了,
    我执行了: 
    set names 'utf8';
    show variables like '%char%'; 显示utf-8,
    source c:\\99savings_Bayarea_DB.sql 还是出错重新restart mysql后
    show variables like '%char%'; 怎么又变回以前的啦
      

  9.   

    mysql版本是 MySQL 4.1.9-max
      

  10.   

    在my.ini里加了
    [mysqld]
    default-character-set=utf8启动Mysql后显示
    mysql> show variables like '%char%';
    +--------------------------+--------------------------------------------+
    | Variable_name            | Value                                      |
    +--------------------------+--------------------------------------------+
    | character_set_client     | latin1                                     |
    | character_set_connection | latin1                                     |
    | character_set_database   | utf8                                       |
    | character_set_results    | latin1                                     |
    | character_set_server     | utf8                                       |
    | character_set_system     | utf8                                       |
    | character_sets_dir       | E:\PROGRA~1\EASYPH~1\mysql\share\charsets/ |
    +--------------------------+--------------------------------------------+
      

  11.   

    我不是说了吗,还得添加一项:
    [mysql]
    defalt-character-set=utf8
    然后再重新启动。
      

  12.   

    my.ini文件都添加了内容如下,还是不行呀?#------------------------ IMPORTANT ! ----------------------
    # This file is GENERATED by EasyPHP when needed so edit the
    # file E:\PROGRA~1\EASYPH~1\conf_files\my.ini if you want to do
    # modifications in this file
    #-----------------------------------------------------------
    ; IMPORTANT
    ; E:/PROGRA~1/EASYPH~1 is used to specify EasyPHP installation path
    [mysql]
    default-character-set=utf8[mysqld]
    datadir=E:/PROGRA~1/EASYPH~1/mysql/data
    basedir=E:/PROGRA~1/EASYPH~1/mysql
    bind-address=127.0.0.1
    default-character-set=utf8
    ; Uncomment for use on USB key
    ; skip-innodb
      

  13.   


    mysql> show variables like '%char%';
    +--------------------------+--------------------------------------------+
    | Variable_name            | Value                                      |
    +--------------------------+--------------------------------------------+
    | character_set_client     | latin1                                     |
    | character_set_connection | latin1                                     |
    | character_set_database   | utf8                                       |
    | character_set_results    | latin1                                     |
    | character_set_server     | utf8                                       |
    | character_set_system     | utf8                                       |
    | character_sets_dir       | E:\PROGRA~1\EASYPH~1\mysql\share\charsets/ |
    +--------------------------+--------------------------------------------+
    7 rows in set (0.00 sec)
      

  14.   

    根据网上的信息,修改配置如下,还是不行?
    [mysqld]
    datadir=E:/PROGRA~1/EASYPH~1/mysql/data
    basedir=E:/PROGRA~1/EASYPH~1/mysql
    bind-address=127.0.0.1
    default-character-set=utf8
    default-collation=utf8_general_ci
    ; Uncomment for use on USB key
    ; skip-innodb[client]
    default-character-set=utf8
    init_connect='SET NAMES utf8'#settings for clients (connection, results, clients)
    [mysql]
    default-character-set=utf8