如何解析CSV文件并将其数据存储到数据库中?

时间:2014-03-28 03:24:03

标签: javascript php html csv

我尝试使用onclick功能将CSV数据存储到数据库。不幸的是,我在javascript函数中使用PHP代码,这是不够有效的。因此,我希望通过使用javascript代替php将CSV数据存储到数据库中,我可以获得任何建议或解决方案来提高项目的效率。

这是带有PHP代码的JavaScript:

<script>
function storeQueEmail(){
<?php    
    $file = $_FILES[csv][tmp_name]; 
    $handle = fopen($file,"r"); 

    //loop through the csv file and insert into database 
    do { 
        if ($data[0]) { 
            $record['contact_first'] = $data[0];
            $record['contact_last'] = $data[1];
            $record['contact_email'] = $data[2];
            $record['subject'] = $_REQUEST['subject'];
            $record['message'] = $_REQUEST['message'];
            $record['status'] = 0;

            $oAdminEmail->insertQueEmail($record);
            } 
    } while ($data = fgetcsv($handle,1000,",","'")); 

    ?>  
    }
</script>

这是HTML代码:

<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 with PHP & MySQL</title> 
</head> 
<body> 
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1" > 
  Subject : <br/>
  <input type="text" name="subject" id="subject" required/> <br/>
  Choose your upload type: <br /> 
    <input name="csv" type="file" id="csv" accept=".csv" required/> <br/>
  Content : <br/>
  <textarea name="message" cols="50" rows="10" required></textarea><br/>
  <input type="submit" name="submit" value="Submit" onclick="storeQueEmail()"/> 
</form> 
</body> 
</html> 

1 个答案:

答案 0 :(得分:0)

你想在那里做什么?我想你在谈论PHP HTML文档。因此,您的函数中的PHP代码将在服务器上进行解释。由于您的PHP代码没有输出,您的Javascript函数只是空的。因此,当您将Javascript函数注册为onclick处理程序时,就不会发生任何事情。

请记住,虽然PHP代码是在服务器上解释的,但客户端(即在浏览器中)会解释标准Javascript代码。如上面的评论所述,可以使用AJAX或POST / GET - 请求将数据发送到您的服务器,然后将其写入您的数据库或文件等。

使用Javascript直接执行此操作的另一种方法是Node.js - 能够像PHP一样写入数据库的服务器端Javascript。

使用上面提到的HTML代码执行此操作的最简单方法是填写

action - attribute 

中的

form tag

例如:

<form action="proccessData.php" ...>
...
</form>

请勿忘记删除表单提交输入字段中的onclick - 属性。 如果您知道按下提交按钮,则整个表单及其内容将发送至http://www.xyz.de/proccessData.php。在该文件中,您可以使用表单数据:在您的情况下,两个文本字段和一个文件上载字段。您可能知道可以通过以下方式发送文本输入字段的内容:

$_POST['<name of field>']

要获取上传的文件并获取它,您可以使用PHP的全局

$_FILE[] - Array

请参阅php.net上的PHP手册或其他一些在线文档。网上有很多东西可以找到。 我只是给你一个有用的链接到php.net如何以正确和安全的方式处理文件上传:http://us2.php.net/manual/en/features.file-upload.php

通过PHP全局$ _FILE []后读取上传的文件 - 数组只需通过proccessData.php中的fgetcsv处理该文件,然后将该行写入您的数据库行。

希望有所帮助!这真的不是那么难:)