使用PHP将CSV导入MySQL

使用PHP将CSV导入MySQL,php,mysql,csv,Php,Mysql,Csv,我从互联网上收集了一些信息,并编写了这个小脚本,将CSV文件导入MySQL数据库。我认为这是正确的,但它不起作用 我做错了什么 <?php //connect to the database $connect = mysql_connect("localhost","testdb","testdb"); mysql_select_db("testdb",$connect); //select the table if ($_FILES[csv][size] > 0)

我从互联网上收集了一些信息,并编写了这个小脚本,将CSV文件导入MySQL数据库。我认为这是正确的,但它不起作用

我做错了什么

 <?php 

//connect to the database
$connect = mysql_connect("localhost","testdb","testdb");
mysql_select_db("testdb",$connect); //select the table    

if ($_FILES[csv][size] > 0) {

    //get the csv file
    $file = $_FILES[csv][tmp_name];
    $handle = fopen($file,"r");

    //loop through the csv file and insert into database
    do {
        if ($data[0]) {
            mysql_query("INSERT INTO class12 (htno, subcode, subname, int_marks, ext_marks, result, credits) VALUES
                (
                    '".addslashes($data[0])."',
                    '".addslashes($data[1])."',
                    '".addslashes($data[2])."'
                    '".addslashes($data[3])."'
                    '".addslashes($data[4])."'
                    '".addslashes($data[5])."'
                    '".addslashes($data[6])."'
                    '".addslashes($data[7])."'
                )
            ");
        }
    } while ($data = fgetcsv($handle,3000,",","'"));
    //

    //redirect
    header('Location: import.php?success=1'); die;

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Import a CSV File</title>
</head>

<body>

<?php if (!empty($_GET[success])) { echo "<b>Your file has been imported.</b><br><br>"; } //generic success notice ?>

<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  Choose your file: <br />
  <input name="csv" type="file" id="csv" />
  <input type="submit" name="Submit" value="Submit" />
</form>

</body>
</html>

导入CSV文件
选择您的文件:

如果可能,请有人提供代码,以自动创建一个带有文件名(不带
.csv
扩展名)的SQL表,然后导入该表。

以下几行中没有逗号

                '".addslashes($data[4])."'
                '".addslashes($data[5])."'
                '".addslashes($data[6])."'
                '".addslashes($data[7])."'`
我已经测试过了,效果很好。如果有帮助,请投票

2.可能是您在此处输入了表名。您必须写入数据库名

mysql\u select\u db(“testdb”,$connect)//选择表

mysql\u查询(“插入到class12(htno、subcode、subname、int\u标记、ext\u标记、result、credits)值中 ( “.addslashes($data[0])”, “.addslashes($data[1])”, “.addslashes($data[2])。” “.addslashes($data[3])。” “.addslashes($data[4])。” “.addslashes($data[5])。” “.addslashes($data[6])。”
“.addslashes($data[7])。”//我认为这是额外的。您的表只有7列!

similar您遇到了什么错误?@Miguelo只是给我看了一个空页。实际上它工作了:),但仍然返回一个空页。是否可以编写一些echo成功消息来替换
标题('Location:import.php?success=1'));die;
您可以这样做。您当前的文件名是
import.php
?做一件事,首先进行演示,然后慢慢地操作所有内容。删除标题位置,删除
mysql\u query
并放置echo。现在加载页面结果以打印sql查询。复制查询并使用phpMyAdmin运行。以便您可以测试自己。Is可以包含代码以自动创建一个带有文件名(不带.csv扩展名)的SQL表,然后导入它。是的。修剪文件名,然后创建一个类似于PHP代码的表。欢迎使用SO,请记住正确概述您的源代码。