簡體   English   中英

使用html表單導入csv數據…使用PHP腳本加載數據infile和MySQL

[英]Using html form to import csv data… using PHP script load data infile and MySQL

我無法讓此腳本在MAMP本地服務器上運行時遇到麻煩:

<?php
//Uploader Script for mass upload of devices.
//Check for errors
if($_FILES['file_upload']['error'] > 0){
    die('An error ocurred when uploading.');
}
//check file type is csv
if($_FILES['file_upload']['type'] != 'text/csv'){
    die('Unsupported filetype uploaded.');
}
//check size of csv
if($_FILES['file_upload']['size'] > 500000){
    die('File uploaded exceeds 500kb - maximum upload size.');
}
$file_url = $_FILES['file_upload']['tmp_name'];
$query = <<<eof
    LOAD DATA LOCAL INFILE '$file_url'
     REPLACE
     INTO TABLE DEVICE
     FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
     LINES TERMINATED BY '\n'
    (device_id, device_name, app_name)
eof;

$load_data = mysql_query($query);

數據將進入沒有外鍵依賴性的單個表中。 我正在嘗試上傳CSV,並且已成功將數據庫與其他代碼一起使用。 我正在使用此電子郵件表格:

<form action='upload.php' enctype='multipart/form-data'  method='post'>";
     File: <input type='file' name='file_upload'>"; 
     <input type='submit' name='Submit' value='Download Devices' />
 </form>

我認為您需要在表單標簽中添加enctype =“ multipart / form-data”。

請參閱enctype ='multipart / form-data'是什么意思?

好的,現在我們知道已經存在了,您需要檢查運行MySQL進程的用戶是否具有訪問$ _FILES ['file_upload'] ['tmp_name']處的臨時文件的權限。 這是最可能的故障點。

您可能可以使用mysql_error或mysql_errno函數找到它: http : //php.net/mysql_error

$load_data = mysql_query($query)  or die("<b>A fatal MySQL error occured</b>.\n<br />Query: " . $query . "<br />\nError: (" . mysql_errno() . ") " . mysql_error()); 

這將讓您知道mysql是否失敗並輸出原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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