簡體   English   中英

PHP MySQL - 使用LOAD DATA INFILE導入CSV - 確定文件路徑?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM