簡體   English   中英

使用php將csv上傳到數據庫表

[英]uploading csv to database table using php

我對此很陌生,所以希望我離這里不遠:

我有一個名為BT Database的數據庫,其中有一個名為case_cases的表。 我希望能夠使用php腳本自動將.csv文件上傳到其中。 我制作了一個php腳本和一個測試csv文件,將它們放到托管數據庫的XUbuntu計算機的桌面上。

我通過打開終端,導航到桌面,然后使用php -e(testimport.php)運行腳本來測試它們。 我沒有任何錯誤,只是一個空行,所以它似乎可以正常運行,但是當我進入表時,csv的數據尚未上傳。 有人可以建議我在這里做錯什么嗎? 我的PHP腳本如下:

<?php
//connect to the database
    $connect = mysql_connect("localhost","user","password")
    or die("Could not connect.")
;
    mysql_select_db("BT Database",$connect);

//get the csv file 
    $handle = fopen("import.csv","r")
    or die("Couldn't find or open csv file")
;

//set up the query to load data into the table, then run it.
    $loadcases = "LOAD DATA INFILE 'import.csv'
                  INTO TABLE cases_cases
                  FIELDS TERMINATED BY ''
                  OPTIONALLY ENCLOSED BY '\"'
                  LINES TERMINATED BY ',,,\\r\\n'
                  IGNORE 1 LINES
                  (name, @dummy, case_specific_notes, type, initiation_date, @dummy,)"
    or die("error loading file.")
;
    mysql_query($loadcases)
;
?>

編輯1:按照所有人的建議,我刪除了逗號,將腳本升級為mysqli,並在腳本中調用了實際的mysql錯誤。 這顯示了一些以前看不見的問題,很容易解決。

但是,現在我遇到了與以前相同的問題,即它運行並且沒有錯誤,但是數據庫表中沒有任何顯示。 新腳本如下。 任何想法可能出什么問題嗎?

<?php

$mysqli  =  new mysqli("localhost","xampp","bt4521","BT Database");
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$sql = "LOAD DATA INFILE 'sfimport/sfdumptest.csv' INTO TABLE cases_cases
        FIELDS TERMINATED BY ','
        LINES TERMINATED BY '\\r\\n'
        IGNORE 1 LINES
        (name, @dummy, case_specific_notes, type, initiation_date, @dummy, @dummy)
";

//Try to execute query (not stmt) and catch mysqli error from engine and php error
if (!($stmt = $mysqli->query($sql))) {
    echo "\nQuery execute failed: ERRNO: (" . $mysqli->errno . ") " . $mysqli->error;
};
?>

看到您可能沒有收到問題下方的評論通知,或者您是否已閱讀它們,請在“答案”區域中提交以下內容。

@dummy,)的結尾逗號不應該出現。

使用die(mysql_error($connect))會拋出語法錯誤,而不是使用通用的echo'd文本。


旁注:當然希望那不是不好的粘貼/打字錯誤。

暫無
暫無

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

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