【发布时间】:2013-11-21 01:04:29
【问题描述】:
我构建了这个脚本来上传 .csv 文件并将它们直接发送到我的数据库。 但它不会在我的表中写入任何内容。 如果我将文件上传到我的服务器并写“file.csv”而不是“$file”,它就可以完美地工作.. 但我想通过表单上传它们。 谁能帮帮我?
表格:
<html>
<head>
</head>
<body>
<h2> CSV Import </h2>
<form>
<form method="post" action="imp.php" enctype="multipart/form-data">
<input type="file" name="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
imp.php:
<?php
$delimiter = ',';
$db = new mysqli('host', 'user', 'pw', 'db');
$file= $_FILES[file][temp_name];
if (($handle = fopen($file, 'r')) !== FALSE) {
while (($data = fgetcsv($handle, 1000, $delimiter)) !== FALSE) {
foreach($data as $i => $content) {
$data[$i] = $db->real_escape_string($content);
}
$db->query("INSERT INTO table VALUES('" . implode("','", $data) . "');");
}
fclose($handle);
}
?>
【问题讨论】:
-
你能 var_dump($_FILES) 吗?
-
让我们看看...未能验证上传是否成功。无法验证数据库连接是否已建立。未能验证查询调用是否成功。使用
'回显包含变量的字符串...我们继续吗? -
上传成功! db连接正常!我刚刚做了一个编辑.. echo '$file';不是该计划的一部分
-
无法引用字符串
$_FILES['file']['temp_name'] -
不会改变任何东西.. :/
标签: php mysql csv file-upload upload