我正在尝试从PHP My Admin中的CSV将数据导入SQL,因此可能是PHP My Admin问题。我遇到的问题是某些列使用特殊字符,例如:
“Adán,Antonio”
结束只是“广告”。
列结构如下:
CREATE TABLE IF NOT EXISTS `players` ( `player_name` varchar(255) COLLATE utf8 NOT NULL, `player_nation` varchar(255) CHARACTER SET utf8 NOT NULL, `player_club` varchar(255) CHARACTER SET utf8 NOT NULL, `player_position` varchar(255) CHARACTER SET utf8 NOT NULL, `player_age` tinyint(2) NOT NULL, `player_dob` varchar(32) CHARACTER SET utf8 NOT NULL, `player_based` varchar(255) CHARACTER SET utf8 NOT NULL, `player_id` int(10) unsigned NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8;
我猜这与字符集有关,但是mysql.com只是建议将表改为已经存在的字符集utf8。
任何想法我怎么能阻止这个?
插入数据库很好,所以我猜这与我的表结构无关。这似乎与从CSV导入有关。
这是由PHP My Admin
生成的加载数据查询LOAD DATA LOCAL INFILE 'C:\\Windows\\Temp\\php21E4.tmp' INTO TABLE `players` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'.
我发现了这个问题。我的CSV编码了西欧字符集。经过一段时间将其转换为UTF8后,它导入就好了。根本不是SQL问题。
答案 0 :(得分:0)
您能否跟踪截断发生的位置,很可能根本不是您的数据库问题。
尝试使用特殊字符从命令行对数据库表进行简单插入,看看是否成功。
然后尝试记录导入中的各个步骤以跟踪问题发生的位置......