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

时间:2015-05-07 17:20:11

标签: php database csv

我对此很陌生,所以希望我不会离开这里:

我有一个名为BT Database的数据库,其中有一个名为cases_cases的表。我希望能够使用php脚本自动将.csv文件上传到其中。我制作了一个php脚本和一个测试csv文件,将它们放在托管数据库的XUbuntu机器的桌面上。

我通过打开终端,导航到桌面,然后使用php -e(testimport.php)来运行脚本来测试它们。我没有错误,只是一个空行,所以它似乎运行正常,但是当我进入表格时,来自csv的数据还没有上传。任何人都可以建议我在这里做错了什么?我的php脚本如下:

$products = Product::model()->findAll(array(
                        "condition" => $condition + 'where product_id != 999',
                        'order' => 'product_name ASC'
                    ));

编辑1: 遵循每个人的好建议,我删除了逗号,将我的脚本升级到mysqli,并在我的脚本中调用了实际的mysql错误。这显示了一些以前看不见的问题,这些问题很容易解决。

但是,现在我遇到了和以前一样的问题,即它运行并且没有错误,但数据库表中没有显示任何错误。新脚本如下。什么想法可能会出错?

<?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 个答案:

答案 0 :(得分:1)

如果您的问题仍然没有收到通知,或者您是否已经阅读过这些评论,则可能会在答案区域提交以下内容。

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

使用die(mysql_error($connect))会引发语法错误,而不是使用通用的回显文本。

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