使用MySQL和PHP转换CSV文件结构

时间:2013-03-31 19:41:18

标签: php mysql csv

我正在尝试创建一个PHP函数,我可以将一个CSV文件上传到MySQL,然后导出另一个CSV文件,其中包含数据和表格的某些更改。

实施例

  

CSV-1:

     

表名= Photolink

     

表格内容= http:// www.sitename.com/image1.jpg

将其转换为:

  

CSV-2:

     

表名= img_URL

     

表内容= product / image1.jpg

我需要你帮助修改代码才能使其正常工作;

我试过这段代码仍然无法正常工作,朋友们可以帮我解决一下吧!

        $data1 = $mysql->prepare("INSERT INTO products (name, model, quantity, image_url) VALUES (:name, :model, :quantity, :image_url)");
    $data1->bindParam(':name', $name);
    $data1->bindParam(':model', $model);
    $data1->bindParam(':quantity', $quantity);
    $data1->bindParam(':image_url', $image_url);



    if ($_FILES[csv][size] > 0) {

        //get the csv file
        $file = $_FILES[csv][tmp_name];
        $handle = fopen($file,"r");

    while ($data = fgetcsv($handle,1000,",","'")) {
        if ($data[0]) {

        $name = $data[0];
        $model = $data[1];
        $quantity = 100;
        $image_url = $data[2];
        $data1->execute();

        }
    }

1 个答案:

答案 0 :(得分:1)

翻转你的循环:

while ($data = fgetcsv($handle,1000,",","'")) {
    if ($data[0]) {
        mysql_query("INSERT INTO products (name, model, quantity, image_url) VALUES
            (
                '".addslashes($data[0])."',
                '".addslashes($data[1])."',
                //quantity is 100 for all
                '100',
                '".addslashes($data[2])."'
            )
        ");
    }
}

因为在原始代码中,$datawhile语句中定义之前甚至还不存在。

还有很多其他问题,但这应该可以帮到你。