2013-05-08 49 views
1

我需要一些幫助來連接這個點。有很多片段漂浮在附近,但我還沒有找到一個好的端到端教程。PHP MySQL - 使用LOAD DATA INFILE導入CSV - 確定文件路徑?

對於我正在構建的簡單定製CMS,我希望最終用戶管理員可以上傳其他用戶的CSV選項。 PHPMyAdmin或對數據庫的其他「直接」訪問不適用於我的環境。所以我試圖構建一個文件上傳表單,然後將數據插入到適當的表中。

我發現this tutorial on building the upload form - 工作正常(雖然我想添加一些額外的驗證/安全性)。並根據這幾個帖子(like this one)我認爲使用LOAD DATA INFILE比試圖循環和解析fgetcsv或什麼(但隨意不同意)更有意義。

這是我目前的代碼 - 它不工作,我認爲它是文件路徑 - 我應該如何格式化它? _uploads目錄和這個處理器文件在同一個地方。

$target_path = "_uploads/"; 

$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
    echo "The file ". basename($_FILES['uploadedfile']['name']). 
    " has been uploaded to " . $target_path; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
} 

$sql = "LOAD DATA INFILE $target_path 
     INTO TABLE User 
     (UserFirstName, UserLastName) 
     FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\"' 
     LINES TERMINATED BY '\r\n' 
     "; 

$result = mysql_query($sql, $connection); 

if (mysql_affected_rows() == 1) { 
    $message = "The user was successfully updated!"; 
} else { 
    $message = "The user update failed: "; 
    $message .= mysql_error(); 
} 

echo $message; 

任何建議或指針,以體面的教程,將不勝感激。

回答