【发布时间】:2014-02-13 19:45:08
【问题描述】:
我正在尝试将上传的 CSV 文件插入到我的 MySQL 数据库中,但是每次都失败; MySQL 表仍然显示为空我对 PHP/MySQL 还很陌生,所以任何建议都会很棒!
HTML
<input type="file" name="file" id="file">
JavaScript
function Upload_Text()
{
var formData = new FormData();
var file = document.getElementById("file").files[0];
formData = new FormData();
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var result = xmlhttp.responseText;
alert(result);
}
}
var url = "Upload_Text.php";
formData.append("thefile", file);
xmlhttp.open('POST', url, true);
xmlhttp.send(formData);
}
PHP
<?php
$file = $_FILES['thefile']['tmp_name'];
$link = new mysqli('address', 'usr', 'pwd', 'db');
if (mysqli_connect_error()) { echo "0"; die();}
$statement = $link->prepare("LOAD DATA INFILE ? INTO TABLE Groups FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';");
$statement->bind_param('s', $file);
$statement->execute();
?>
文件如下所示:
jakec,8
jim,5
debby,4
emily,8
terrence,2
感谢您的帮助
【问题讨论】:
-
错误信息是什么?
-
非常基本的问题:你得到了什么错误?
-
您的表单是否包含
enctype='multipart/form-data'并且输入的名称确实称为thefile? -
而这个
$file = $_FILES['thefile']['tmp_name'];应该是$file = $_FILES['thefile']['name'];并使用var_dump();来查看它是否已设置。 -
将
name="file"重命名为name="thefile"=>$file = $_FILES['thefile']['tmp_name'];这是主要问题。<input type="file" name="thefile" id="file">name不匹配。试试看。