我使用php将csv文件导入数据库表。当我选择文件并提交时,我会插入行但只有表格ID和递增的文件编号,其他列是空的
以下是php代码:
<html>
<head></head>
<form name="import" method="post" enctype="multipart/form-data">
<input type="file" name="file" /><br />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
if(isset($_POST["submit"]))
{
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
$c = 0;
$db = new PDO('mysql:host=localhost;dbname=apdatabase', 'root', '');
$db->exec("SET CHARACTER SET utf8");
while(($filesop = fgetcsv($handle, 1000,";")) !== false)
{
$filenumb = $filesop['filenumb'];
$hospitalname = $filesop['hospitalname'];
$department = $filesop['department'];
$unit = $filesop['unit'];
$operdt = $filesop['operdt'];
$reason_desc = $filesop['reason_desc'];
$notes = $filesop['notes'];
$full_name = $filesop['full_name'];
$dataentrytime = $filesop['dataentrytime'];
$sql = "INSERT INTO can_surg (can_surg_id, filenumb, hospitalname, department, unit, operdt, reason_desc, notes, full_name, dataentrytime) VALUES (NULL, $filenumb,'$hospitalname','$department','$unit','$operdt','$reason_desc','$notes','$full_name', '$dataentrytime')";
$c = $c + 1;
$result = $db->query($sql);
}
if($sql){
echo "You database has imported successfully. You have inserted ". $c ." recoreds";
}else{
echo "Sorry! There is some problem.";
}
}
?>
</html>
答案 0 :(得分:0)
已编辑的代码;
$db = new PDO('mysql:host=localhost;dbname=apdatabase', 'root', '');
$db->exec("SET CHARACTER SET utf8");
if(isset($_POST["submit"])) {
$file = $_FILES["file"]["tmp_name"];
if($_FILES["file"]["size"] > 0){
$file = fopen($filename, "r");
while(($filesop = fgetcsv($file, 10000, ",")) !== FALSE){
// You have to set values according to columns, e.g , filenumb is 0 column in your csv file
$filenumb = '$filesop[0]';
$hospitalname = '$filesop[1]';
$department = '$filesop[2]';
$unit = '$filesop[3]';
$operdt = '$filesop[4]';
$reason_desc = '$filesop[5]';
$notes = '$filesop[6]';
$full_name = '$filesop[7]';
$dataentrytime = '$filesop[8]';
$sql = "INSERT INTO can_surg (can_surg_id, filenumb, hospitalname, department, unit, operdt, reason_desc, notes, full_name, dataentrytime) VALUES (NULL, $filenumb,'$hospitalname','$department','$unit','$operdt','$reason_desc','$notes','$full_name', '$dataentrytime')";
$result = $db->query($sql);
}
}
fclose($file);
}
立即试用上述代码