繁体   English   中英

CSV文件导入数据库,PHP

[英]csv file import into database, php

我正在尝试编写一个页面,该页面允许将csv文件导入数据库。 我在使导入工作上遇到问题。 它有时会工作,但没有明显的原因会停止工作。 我知道脚本正在连接到数据库,因为我在数据库中添加了一个手动条目,然后截断即可清除数据库,但不导入数据。 我有带有列设置的db表,以反映csv中的每一列。 任何人都可以协助解决此问题。 这是我的代码。

DB-config.php文件

<?php
    define('_DB_HOST_NAME','localhost');
    define('_DB_USER_NAME','root');
    define('_DB_PASSWORD','');
    define('_DB_DATABASE_NAME','stock_planner');

    $dbConnection = mysqli_connect(_DB_HOST_NAME,_DB_USER_NAME,_DB_PASSWORD,_DB_DATABASE_NAME);

?>

的index.php

<?php
    if(isset($_POST['submit'])){
        include_once 'db-config.php';
        if (!$dbConnection)
        {
          print "<h1>Unable to connect to the database, contact your administrator!</h1>";
        }
        else
        {
        $truncate = "TRUNCATE TABLE stock_sales_report";
        $file = $_FILES['csv_stock']['name'];
        $import = "LOAD DATA LOCAL INFILE '$file'
                INTO TABLE stock_sales_report
                FIELDS TERMINATED BY ','
                OPTIONALLY ENCLOSED BY '\"' 
                LINES TERMINATED BY '\n' 
                IGNORE 1 LINES;";
        mysqli_query($dbConnection,$truncate);
        mysqli_query($dbConnection,$import);
        print "<h1>successfully imported.</h1>";
        }
    }
?>
<!DOCTYPE html>
<html>
<head>
    <title>Planner</title>
</head>
<body>
    <form method='POST' enctype='multipart/form-data'>
        Upload CSV: <input type='file' name='csv_stock' /> <input type='submit' name='submit' value='import' />
    </form>
</body>
</html>

首先,您需要连接一个对数据库具有FILE权限的帐户。 https://dev.mysql.com/doc/refman/5.7/zh-CN/privileges-provided.html#priv_file)FILE特权是在服务器级别授予的,而不仅仅是特定数据库的特权。

其次,如果未将文件的完整路径上传到执行脚本所在的目录,则需要将文件的完整路径发送给命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM