1

我正在尝试设置一个 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 一样,这会导致某些字符被错误地导入到表中(例如,£ 符号被导入为问号)。

任何建议将不胜感激。提前谢谢了

4

2 回答 2

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]
[...]
于 2013-09-24T16:49:41.083 回答
0

这里有一些简单的格式化帮助是你可以通过使用 HeidiSQL 来作弊。一旦文件被创建和测试并在数据库中正常加载,您就可以查询软件正在创建并保存它。当您可能需要创建数十个输入时,可以节省大量时间,因为该软件会使用优先级、插入、截断等自动完成。基本上上面列出的所有内容,但在一个漂亮的小 GUI 中。

于 2014-11-15T05:41:01.597 回答