2013-10-28 71 views
0

我想創建一個導入腳本,我有一個工作後的例子[一些過時和不安全的教程]但是本教程不使用PDO。雖然這種形式只能由網站主管使用,但我覺得我應該使用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; 
} 
+0

請更適合,不要鏈接到那個可怕的教程。 –

回答

0

由於事實上,沒有PDO和CSV之間沒有什麼聯繫。

每個PHP用戶必須發展自己的能力分開事項。有任務給你:

  1. 來讀取一個CSV文件一行到陣列
  2. 存儲在數據庫中的陣列數據。

這兩個任務是完全不相干的。在閱讀csv後,你可能會在任何地方痛苦。而CSV部分不會被改變一點。您可以存儲任何其他來源的PDO數據 - 並且PDO代碼不會稍微改變。

所以,你所需要知道的其實是如何使用PDO。那麼,在這裏你去https://stackoverflow.com/tags/pdo/info

另一種辦法是使用LOAD DATA INFILE查詢,這是一種爲散裝進口