0

我每天都会将以下文件转储到我们的在线目录之一中:

dat-part2-489359-43535-toward.txt

数字每天随机变化。

我有以下代码来尝试加载文件:

mysql_query("LOAD DATA LOCAL INFILE 'dat-part2-%-toward.txt' 
          REPLACE INTO TABLE my_table
          FIELDS TERMINATED BY ',' ENCLOSED BY ''
          LINES TERMINATED BY '\r\n'
          IGNORE 1 LINES") or die(mysql_error());

当然没有运气。最好的方法是什么?

4

2 回答 2

1

假设这是一个预定的作业,为什么不检查与您的文件名模板匹配的最新文件的目录。将所述文件的名称存储在一个变量中,然后将该变量子放入您的查询中。查看glob()

于 2011-01-27T20:33:40.837 回答
0

我会通过 shell 脚本或 windows cmd 文件来完成。这假设您使用 mysqldump 或某些创建有效 sql 脚本的程序创建了文件。

您可以在 windows 中运行 dir /B 来获取文件目录。所以做一个 dir /B > input.txt 然后使用 Windows 脚本来读取输入文件,并且对于每一行,使用 mysql 客户端将文件输入管道。

@ echo off  set infile= %%1
for /f "eol= tokens=*
delims= usebackq" %%i in  (%infile%)
do (  mysql -u userName --password=pwd < %%i  )

自从我编写任何 Windows 脚本以来已经有很长时间了,但这应该让您对一种方法有所了解。

于 2011-01-27T20:37:27.347 回答