0

インポート スクリプトを作成しようとしています。[いくつかの古くて安全でないチュートリアル] に従って動作する例がありますが、このチュートリアルでは PDO を使用していません。このフォームはサイト管理者のみが使用するものですが、SQL インジェクションを防ぐために PDO を使用する必要があると思います。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 ユーザーは、物事を分離する能力を自分自身で開発する必要があります。次の 2 つのタスクがあります。

  1. CSVファイルから配列に行を読み込む
  2. 配列データをデータベースに格納します。

これらの 2 つのタスクは、互いにまったく無関係です。csv を読んだ後、どこかで痛むかもしれません。そして、CSV 部分は少し変更されません。他のソースの PDO データを保存することもできます。PDO コードは少しも変更されません。

したがって、実際に学ぶ必要があるのは、PDO の使用方法だけです。さて、どうぞhttps://stackoverflow.com/tags/pdo/info

別のオプションはLOAD DATA INFILE、一括インポートに適したクエリを使用することです。

于 2013-10-28T11:01:34.517 に答える