【发布时间】:2012-08-29 09:16:29
【问题描述】:
我现在可以很好地导入我的 csv,除了一件事,我如何让导入忽略第一行中的数据?员工将上传与第一行中的列名相同的格式。
if (isset($_POST['submit'])) {
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
echo "<h1>" . "File " . $_FILES['filename']['name'] . " uploaded successfully." . "</h1>";
echo "<h2>Displaying contents:</h2>";
readfile($_FILES['filename']['tmp_name']);
}
//Import uploaded file to Database
$handle = fopen($_FILES['filename']['tmp_name'], "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$import = "INSERT into tictoc(employee,taskname,tasktime,sessiontime,sessionstart,sessionend,sessionnotes) values('" . $userinfo['first_name'] . " " . $userinfo['last_name'] . "','$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]')";
mysql_query($import) or die(mysql_error());
}
fclose($handle);
print "Import done";
}
【问题讨论】:
-
您的代码容易受到 SQL 注入的攻击。您确实应该使用prepared statements,将变量作为参数传递给其中获得 SQL 评估。如果你不知道我在说什么,或者如何解决它,请阅读Bobby Tables 的故事。特别是,上传的文件可能包含将被注入到您的
INSERT语句中的 SQL。
标签: php mysql csv import-from-excel