我正在尝试设置一个php脚本,该脚本从外部ftp服务器收集文本文件,然后将该文本文件导入预先格式化的MySql表。当我通过phpmyadmin手动执行此操作时,有一个选项可用于定义传入文本文件的字符集。我需要在php脚本中加入该步骤并定义字符集是iso-8559-1。以下是我的脚本处理导入的一部分 - 我需要添加(以及在哪里)以与我的phpmyadmin相同的方式定义字符集?
mysql_select_db("mydatabase_db", $db);
$fileName="/home/mydomain/public_html/ImportsFolder/" . "IncomingFiles-" . $today . ".txt";
$query = <<<eof
LOAD DATA LOCAL INFILE '$fileName'
INTO TABLE filesincoming
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(id,file_url,file_type,file_index,file_caption,file_updated)
eof;
echo "<br />Populated files incoming.";
脚本运行正常并导入文本文件,但它导入它就像字符集是utf-8一样,这会导致某些字符被错误地导入到表中(例如,将£符号作为问号导入)。
非常感谢任何建议。 非常感谢提前
答案 0 :(得分:0)
来自http://dev.mysql.com/doc/refman/5.1/en/load-data.html:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[CHARACTER SET charset_name]
[...]
答案 1 :(得分:0)
格式化方面的一些简单帮助是你可以使用HeidiSQL作弊。一旦文件被创建并测试并在数据库中正常加载,您就可以查询该软件正在创建并保存该文件。当您可能有十几个输入要创建时节省了大量时间,因为该软件将使用优先级,插入,截断等自动执行。基本上是上面列出的所有内容,但是在一个漂亮的小GUI中。