2013-10-28 2 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 запрос, который намного больше подходит для массового импорта

Смежные вопросы