我正在尝试创建一个导入脚本,我有一个示例工作后跟着[一些过时和不安全的教程]但是本教程不使用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;
}
答案 0 :(得分:0)
事实上,PDO和CSV之间没有一点联系。
每个PHP用户都必须发展自己的能力来分离事务。您有两个任务:
这两项任务完全无关。阅读完csv后,你可能会在任何地方疼痛。并且CSV部分不会改变一点。您可以存储任何其他来源的PDO数据 - 并且PDO代码不会改变一点。
因此,您实际需要学习的只是如何使用PDO 。那么,你去https://stackoverflow.com/tags/pdo/info
另一种选择是使用LOAD DATA INFILE
查询,这种方法更适合批量导入