【发布时间】:2017-04-28 11:13:20
【问题描述】:
我已尝试将其设置为fgetcsv 函数,以将CSV 文件的所有行输出到我的数据库中。这似乎是相当标准的功能,但它仍然不起作用。
这是我要运行的代码:
<?php
$file = $_FILES['records_csv']['tmp_name'];
$handle = fopen($file,"r");
while(($csv = fgetcsv($handle,1000,",")) !== false) {
$sql = "INSERT INTO records(artist, title, type, size, year, status)
VALUES ('".$csv[0]."', '".$csv[1]."', '".$csv[2]."', '".$csv[3]."','".$csv[4]."','ACTIVE')";
}
if ($conn->query($sql) === TRUE) {
echo "File uploaded successfully!";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
当我运行它时,它似乎只将文件的第二行输入到数据库中?不知道为什么会这样??
我的 CSV 文件如下所示:
The Jam,All Around The World,Single,7 inch,1977
The Jam,Strange Town,Single,7 inch,1979
我上传的表单如下所示:
<form method="post" class="AddCSV_form" enctype="multipart/form-data">
<input type="file" name="records_csv">
<input type="submit" name="csv_sub" value="Upload">
</form>
谢谢。
【问题讨论】:
-
看看你的
while()循环,$sql被设置的地方,然后看看你在query()中使用$sql的地方,你看到这个问题了吗? -
只是问题格式的一点,最好避免在问题中使用感谢和“请帮助”。它有助于在 SO 上保持良好和标准化。
-
@SingleEntity - 标准化?如果礼貌不是标准化的,那么我认为问题的格式非常糟糕。
-
@HarryHawkes - 你的意见是正确的,我也曾经把礼貌的 cmets 放进去,只是把它们删除了。就是这样。
标签: php html mysql csv fgetcsv