CSV文件上传到php mysql数据库

时间:2014-03-08 22:23:41

标签: php mysql sql csv

我试图建立一个用户可以上传csv文件的页面,而不是输入这么多数据来保存在数据库中。

<?php
     $conn = mysql_connect("localhost","root","") or die (mysql_error());
     mysql_select_db("csv",$conn);

     if(isset($_POST['submit']))
     {
        $file = $_FILES['file']['tmp_name'];

        if($file == "")
        {
            ?>
            <script type="text/javascript">
            alert('No File Selected!');
            </script>
            <?php
        }   

        else
        {
        $handle = fopen($file,"r");

        while(($fileop = fgetcsv($handle,1000,",")) !==false)
        {
            $username = $fileop[0];
            $name = $fileop[1];
            $address = $fileop[2];

            $sql = mysql_query("INSERT INTO `test` (`username`,`name`,`address`) VALUES ([$username],[$name],[$address])");
        }
        }
    }
?>

当我点击提交按钮时,没有任何反应。它只是刷新页面,它不会从数据库中保存。我还检查了我的phpmyadmin版本的SQL查询。

1 个答案:

答案 0 :(得分:0)

字符串应该用引号括起来。

$sql = mysql_query("INSERT INTO `test` (`username`,`name`,`address`)
VALUES (
    '" . mysql_real_escape_string($username) . "',
    '" . mysql_real_escape_string($name) . "',
    '" . mysql_real_escape_string($address) . "')");

此代码也可用于sql注入。此外,不推荐使用mysql函数,您应该切换到使用PDO。

http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers