请告诉我通过PHP表单将文件导入MySQL数据库的最简单方法。
发布于 2013-02-02 08:36:11
试试看。这使用一个函数将文件的行读入字符串数组,然后循环遍历每一行并将列值存储到表中。显然,您需要插入db连接设置和正确的查询。
function loadData()
{
$lines = readInputFromFile("myCSV.csv");
for ($i = 0; $i < count($lines); $i++)
(
$columns = explode(",", $lines[$i]);
$conn = new PDO("mysql:host=YOUR_HOST;port=YOUR_PORT;dbname=YOUR_DBNAME", "UserName", "Password");
$query = "INSERT INTO MYTABLE VALUES ('".$columns[0]."', '".$columns[1]."', '".$columns[2]."')";
$stmt = $conn->prepare($query);
$stmt->execute();
)
}
function readInputFromFile($file)
{
$fh = fopen($file, 'r');
while (!feof($fh))
{
$ln = fgets($fh);
$parts[] = $ln;
}
fclose($fh);
return $parts;
}发布于 2013-02-02 08:17:34
发布于 2013-02-02 08:18:38
MySQL有一个特性加载数据INFILE,它允许在单个SQL查询中直接导入CSV文件。
简单的例子:
<?php
$query = <<<eof
LOAD DATA INFILE '$fileName'
INTO TABLE tableName
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(field1,field2,field3,etc)
eof;
$db->query($query);
?>事情就是这么简单。
没有循环,没有大惊小怪。比在PHP中解析它要快得多。
MySQL手册页面:http://dev.mysql.com/doc/refman/5.1/en/load-data.html
希望这对author有帮助
https://stackoverflow.com/questions/14659992
复制相似问题