0

我正在尝试创建一个导入脚本,在遵循[一些过时且不安全的教程]之后我有一个示例,但是本教程不使用 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;
}
4

1 回答 1

0

事实上,PDO 和 CSV 之间没有一点联系。

每个 PHP 用户都必须培养自己的分离事务的能力。有两个任务给你:

  1. 将 CSV 文件中的一行读入数组
  2. 将数组数据存储在数据库中。

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

因此,您实际上需要学习的只是如何使用 PDO。好吧,给你https://stackoverflow.com/tags/pdo/info

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

于 2013-10-28T11:01:34.517 回答