我创建了一个网站,要求我将csv文件上传到mysql数据库(Wamp服务器)。因为我从来没有这样做过,所以在步骤的详细答案将会非常有帮助。我需要用户使用html输入文件选项上传文件,然后使用php代码将此文件上传到mysql数据库。我使用这段代码
<?php
$con=mysql_connect("localhost","","");
mysql_select_db("sg",$con);
define('CSV_PATH','C:/Users/mkutbudd/Desktop/');
$csv_file = CSV_PATH . "dum.csv";
if (($getfile = fopen($csv_file, "r")) !== FALSE) {
$data = fgetcsv($getfile, 1000, ",");
while (($data = fgetcsv($getfile, 1000, ",")) !== FALSE) {
$num = count($data);
for ($c=0; $c < $num; $c++) {
$result = $data;
$str = implode(",", $result);
$slice = explode(",", $str);
$col1 = $slice[0];
$col2 = $slice[1];
$col3 = $slice[2];
$query = "INSERT INTO dummy(dum1,dum2,dum3)
VALUES('".$col1."','".$col2."','".$col3."')";
$s=mysql_query($query, $con );
}
}
}
echo "File data successfully imported to database!!";
mysql_close($con);
?>
答案 0 :(得分:1)
您的第一步是允许用户上传文件,然后您需要处理错误,如果有,验证文件,如果一切正确,则将上传的文件移动到其位置:{ {3}}
然后你需要使用php函数解析你的文件:http://php.net/manual/en/features.file-upload.php
在此之后,您需要创建与数据库的连接:http://hu1.php.net/manual/en/function.fgetcsv.php
然后您需要使用循环将数据插入表中,例如数组中的foreach,您从fgetcsv创建的内容:http://hu1.php.net/manual/en/book.mysqli.php
还有另一种方法,如果您有权运行system
或execute
函数并且您有权运行mysql命令,那么您可以使用mysql load data
命令:{{ 3}}
完成。