在提出我的第一个问题之前,我已经尝试了一段时间并尽可能多地调查了途径。
我有一个非常简单的 csv 文件。一列,数据由 linux 换行符分隔。我想将它导入到表(代码)的第二列(密码)中。第一列是主键自动递增。
这是简单的 csv 数据(linux 换行 - \n)
A12345678911
A12345678912
A12345678913
A12345678914
这是收集文件的表格。
<form enctype="multipart/form-data" action="upload_webcodes.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="hidden" name="success" value="success" />
Send this file: <input name="webcodeupload" type="file" />
<input type="submit" value="Send File" />
</form>
这是试图运行查询以将 tmp 文件加载到数据库中的 php。
<?php
function dbconnect(){
$db = mysql_connect('localhost', 'root', 'root');
mysql_select_db("mydatabase", $db);
return $db;
}
if ($_FILES['upload']['type'] === 'text/csv') {
$database = dbconnect();
$getfile = $_FILES['upload']['tmp_name'];
$sql = " LOAD DATA LOCAL INFILE $getfile INTO TABLE codes (`passcode`) LINES TERMINATED BY '\n' ";
mysql_query($sql);
}
?>
我无法让它工作。我正在用 MAMP 在本地尝试这个。/tmp/php 文件夹 Date Modified 得到更新,但我在那里看不到文件。我什至尝试过更大的文件,因为我的测试文件非常简单。提交表单后,我已打印出 $_FILES 数组。
Array
(
[webcodeupload] => Array
(
[name] => Aimport.csv
[type] => text/csv
[tmp_name] => /Applications/MAMP/tmp/php/phpsp9ezx
[error] => 0
[size] => 52
)
)
似乎预期的结果在那里?我已经在 phpmyAdmin 中尝试过查询,如果我删除了 LINES TERMINATED BY 子句,它就可以工作。我怀疑这是 phpmyAdmin 的事情,我也尝试过这段代码在查询中使用和不使用该子句。
此外,加载页面时还有一些“未定义索引”错误。我有点理解为什么,并且已经阅读了此处指示掩盖错误的方法的线程,但我有兴趣知道如何避免它们而不是隐藏它们。
任何输入将不胜感激。
谢谢。