使用OpenOffice制作csv文件并使用php转储csv数据

时间:2015-07-11 14:08:18

标签: php mysql csv

我一直在用PHP使用mysql来跟踪csv导入教程来存储数据,当我回显数据时,我得到的是整行,而不是在第一个单元格中获取数据。这可能是我的csv文件的问题,因为我的字段分隔是:逗号和我的文字分隔是:双引号?当我回显出第一个元素echo $fileop[0];时,我得到的是整行而不是第一个元素应该是:title。 任何人都知道这是什么问题?

这是我的代码:

<?php 

    $host = 'localhost';
    $user = 'root';
    $pass = 'root';
    $db_name = 'testcsvdump';

    $db = new mysqli($host, $user, $pass, $db_name);

    if($db->connect_errno > 0){
        die('Unable to connect to database [' . $db->connect_error . ']');
    }


    if( isset($_POST['submit']) ){

        $file = $_FILES['file']['tmp_name'];
        $handle = fopen($file, "r");

        while ( ($fileop = fgetcsv($handle, 1000, ',')) !== false ) {
            echo $fileop[0];
        }

    }else{
            echo 'failed';
        }


?>

,输出为:

titleNameEmail地址

(但我试图回应出“标题”,它是第一个单元格中的第一个元素)。 当我打开我的CSV文件时,每个标题和数据都在他们自己的单元格中。我使用以下设置导出文件。

字段分隔是:逗号

文本分隔是:双引号

2 个答案:

答案 0 :(得分:0)

问题在于csv文件本身,当我用文本edito打开csv时,我注意到每行的末尾都没有逗号,所以当我试图回显第一个元素时,脚本回显出来第一排。一旦我在csv文件中添加了缺少的逗号,php脚本就完全按照它应该做的那样。

答案 1 :(得分:0)

很好,你解决了你的问题。我确实有一个建议可能会使CSV文件更容易使用。我总是倾向于使用这个PHP库,它有自动检测和许多其他有用的功能。这对我帮助很大。还不能评论......

https://github.com/parsecsv/parsecsv-for-php