Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php将csv上载到数据库表_Php_Database_Csv - Fatal编程技术网

使用php将csv上载到数据库表

使用php将csv上载到数据库表,php,database,csv,Php,Database,Csv,我对这个很陌生,所以希望我在这里不会太离谱: 我有一个名为BT数据库的数据库,其中有一个名为cases\u cases的表。我想能够自动上传一个.csv文件到它使用php脚本。我制作了一个php脚本和一个测试csv文件,将它们放在托管数据库的XUbuntu机器的桌面上 我通过打开终端,导航到桌面,然后使用php-e(testimport.php)运行脚本来测试它们。我没有收到任何错误,只是一个空行,所以它似乎运行正常,但当我进入表格时,csv中的数据还没有上传。有人能告诉我我做错了什么吗?我的p

我对这个很陌生,所以希望我在这里不会太离谱:

我有一个名为BT数据库的数据库,其中有一个名为cases\u cases的表。我想能够自动上传一个.csv文件到它使用php脚本。我制作了一个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)
;
?>

看到您可能没有收到问题下方留言的通知,或者如果您已经阅读或未阅读,我将在“答案”区域提交以下内容

@dummy,)
中的尾随逗号不应存在

使用
die(mysql\u error($connect))
会引发语法错误,而不是使用一般的echo文本



旁注:当然希望这不是一个糟糕的粘贴/输入错误。

你想得到错误,所以不要
或die(“错误加载文件”)
do
或die(mysql\u error($connect))
(名称,@dummy,特定于案例的注释,类型,起始日期,@dummy,)
后面的逗号不应该在那里。除了已经说过的话之外,还有几点。首先,停止使用mysql库,因为它已贬值,请改用mysqli。其次,ive过去在基于debian的操作系统和加载数据填充方面存在问题。我强烈建议改为使用LoadDataLocalInfle,并确保在php.ini中启用它。第三,也不太可能,检查并确保自动提交未设置为false。看到很多人在那里用头撞桌子。
<?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;
};
?>