将文件导入:分隔符到MySQL数据库

时间:2015-01-20 10:47:37

标签: mysql sql phpmyadmin

我有多个TXT个文件,其中包含以下格式的列:

id:category:topic:date

他们都排成一列。即。

1:category:topic:date

2:category:topic:date

3:category:topic:date

是否可以import将此文件存入我的MySQL数据库?

1 个答案:

答案 0 :(得分:2)

使用PHPMyAdmin

在导入标签上,您可以上传CSV文件。上传文件,选择格式' CSV',然后设置:

  • :
  • 分隔的列
  • 用以下内容填入的列:(空)

使用PHP

你可以写一个小的PHP程序来做到这一点。首先,阅读文件:

$fh = fopen('the-file.txt', 'r');

现在,$fh是一个读取-file.txt的处理程序。现在我们可以使用fgetcsv()

while (($data = fgetcsv($fh, 1000, ':', '')) !== false) {
    // insert data in database
}

$data是记录中所有数据的数组。


PDO和准备好的声明的一个例子:

// prepare the statement to insert a new record
$stmt = $pdo->prepare("INSERT INTO `some_table` (`id`, `category`, `topic`, `date`) VALUES (?, ?, ?, ?)");
// read the file
$fh = fopen('the-file.txt', 'r');
while (($data = fgetcsv($fh, 1000, ':', '')) !== false) {
    $stmt->execute($data);
}

这将假设列名称是' id',' category',' topic'和' date'。

数字1000是最大行长度。您可以将其设置为0,没有最大长度,但这稍微慢一点。有关详细信息,请参阅docs