我需要一些幫助來連接這個點。有很多片段漂浮在附近,但我還沒有找到一個好的端到端教程。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;
任何建議或指針,以體面的教程,將不勝感激。