[英]PHP MySQL - Import CSV Using LOAD DATA INFILE - Determine file path?
我需要一些幫助來連接這個點。 有很多片段浮動,但我還沒有找到一個好的自然結束教程。
對於我正在構建的簡單自定義CMS,我希望最終用戶管理員可以選擇上傳其他用戶的CSV。 PHPMyAdmin或其他“直接”訪問數據庫不是我的環境的選項。 所以我正在嘗試構建一個文件上載表單,然后將數據插入到相應的表中。
我找到了關於構建上傳表單的教程 - 工作正常(雖然我想添加一些額外的驗證/安全性)。 基於這幾個帖子( 就像這個 ),我認為使用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;
任何建議或指向體面的教程將不勝感激。
您的問題是PHP正在使用Web服務器,MySQL正在使用數據庫服務器。 我認為只要不涉及復制,丟失的“點”就可以了
LOAD DATA LOCAL INFILE
從客戶端計算機讀取。
(原文: http : //dev.mysql.com/doc/refman/5.1/de/load-data.html )
截至2018年: https : //dev.mysql.com/doc/refman/8.0/en/load-data.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.