繁体   English   中英

PDO批量导入脚本

[英]PDO bulk import script

我正在尝试创建导入脚本,在遵循[一些过时且不安全的教程]之后,我有一个工作示例。但是,本教程不使用PDO。 尽管此表格仅由站点管理员使用,但我认为我应该使用PDO来防止SQL注入。 虽然我不确定如何更改PDO语句?

谢谢

  (I already have my DB connection up here)

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

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


do {
    if ($data[0]) {
        $sql = "INSERT INTO users_tbl (username, staff_id, dept,  area) VALUES 
            ('" . addslashes($data[0]) . "',
             '" . addslashes($data[1]) . "', 
             '" . addslashes($data[2]) . "'         
            )
            ";
        $result = pg_query($sql);
                }
} while ($data = fgetcsv($handle, 1000, ",", "'"));
//redirect 
header('Location: import.php?success=1');
die;
}

实际上,PDO和CSV之间没有多少联系。

每个PHP用户必须发展自己的能力来分离事务 您有两个任务:

  1. 从CSV文件中读取一行到数组
  2. 在数据库中存储数组数据。

这两个任务是完全无关的。 阅读csv后,您可能会在任何地方感到疼痛。 CSV部分将不会改变。 您可以在任何其他来源的PDO数据中存储-PDO代码不会稍作更改。

因此,您真正需要学习的就是如何使用PDO 好吧,这里您去https://stackoverflow.com/tags/pdo/info

另一种选择是使用LOAD DATA INFILE查询,这种方式更适合于批量导入

暂无
暂无

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

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