通过php将csv文件上传到mysql

通过php将csv文件上传到mysql,php,mysql,csv,Php,Mysql,Csv,我知道如何将csv文件上传到mysql数据库,但只能通过cmd。我想知道如何使用php表单将csv文件上传到mysql数据库,并忽略excel上的一些信息,只从某一行开始导入?请帮帮我 (PHP4、PHP5) fgetcsv 请参阅php手册 您可以使用带有“忽略…行”选项的“加载数据填充”语句,您可以从命令行和PHP使用该选项。您可以使用MySQL语句一次大容量插入数千条记录。PHP可以处理文件上传。PHP代码类似于: $query = sprintf(" LOAD DATA LOC

我知道如何将csv文件上传到mysql数据库,但只能通过cmd。我想知道如何使用php表单将csv文件上传到mysql数据库,并忽略excel上的一些信息,只从某一行开始导入?请帮帮我

(PHP4、PHP5)

fgetcsv

请参阅php手册


您可以使用带有“忽略…行”选项的“加载数据填充”语句,您可以从命令行和PHP使用该选项。

您可以使用MySQL语句一次大容量插入数千条记录。PHP可以处理文件上传。PHP代码类似于:

$query = sprintf("
    LOAD DATA LOCAL INFILE '%s'
    INTO TABLE `table1`
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
    LINES TERMINATED BY '\\r\\n'
    IGNORE 1 LINES
    ",
    mysql_real_escape_string($FILES["file1"]["tmp_name"])
);
LOCAL
关键字应该允许您绕过一些安全限制。更改以终止的
字段和以
参数终止的
行,以匹配导出时excel使用的分隔符<代码>忽略1行
告诉MySQL跳过标题行


注意:Excel似乎没有使用转义字符;但它将(i)用
”括起包含
的字段(ii)使用
转义单个
内部数据。我相信MySQL会理解这种编码并正确导入数据。

试试这个。它工作得很好,您可以根据CSV文件中的列数添加尽可能多的值。然后在HTML代码中,将上载语法放入标记中

** **试试这个:

 $filename=$_FILES["upload_file"]["name"];
 $extension = end(explode(".",$filename));
 if ($extension=='csv') {
     $tmp_file=$_FILES["upload_file"]["tmp_name"];
     $handle = @fopen($tmp_file, "r");
     //specify your own database connection parameter
     $db = new PDO('mysql:host=localhost;dbname=demo','user','password');
     $stmt = $db->prepare("INSERT INTO writers (writer_name, writer_email) VALUES (?, ?)");
     if ($handle) {
        while (($buffer = fgets($handle, 4096)) !== false) {
            $array=explode(",",$buffer);
            $count=1;
            foreach ($array as $value) {
                $stmt->bindParam($count, $value);
                $count++;
            }
            $stmt->execute();
        }
        if (!feof($handle)) {
            echo "Error: unexpected fgets() fail\n";
        }
        fclose($handle);
        }
        $db = null;
        echo "<p>Success</p>";
    }
    else {
        $error="<p style='color:red;'>Invalid file type</p>";
    }
$filename=$\u文件[“上载文件”][“名称”];
$extension=end(分解(“.”,$filename));
如果($extension=='csv'){
$tmp_文件=$_文件[“上载_文件”][“tmp_名称”];
$handle=@fopen($tmp_文件,“r”);
//指定您自己的数据库连接参数
$db=newpdo('mysql:host=localhost;dbname=demo','user','password');
$stmt=$db->prepare(“插入写入程序(写入程序名称、写入程序电子邮件)值(?,)”;
如果($handle){
while(($buffer=fgets($handle,4096))!==false){
$array=explode(“,”,$buffer);
$count=1;
foreach($array作为$value){
$stmt->bindParam($count,$value);
$count++;
}
$stmt->execute();
}
如果(!feof($handle)){
echo“错误:意外的fgets()失败\n”;
}
fclose($handle);
}
$db=null;
回声“成功

”; } 否则{ $error=“