【问题标题】:Importing data from csv to mysql将数据从csv导入mysql
【发布时间】:2015-02-07 15:20:56
【问题描述】:

大家好,我是 codeigniter 的新手。我正在为这个项目使用 codeigniter。 我一直在尝试上传一个 .csv 文件并将其保存到我的表中。但它给了我一个数据库错误。 我正在使用 php 的 codeigniter 框架。

型号:

  public function save_csv($data)
        {
            $infile=$data['upload_data']['full_path'];
            print_r($infile);
            $query = $this->db->query("LOAD DATA INFILE '".$infile."'
                    INTO TABLE promotion_product
                    FIELDS TERMINATED BY ','
                    ESCAPED BY '\\' 
                    LINES TERMINATED BY '\r\n'
                    IGNORE 1 LINES
                    ");


            print_r($query);
            return $query;
        } 

控制器:

  public function upload() {
            $image_path = realpath(APPPATH . '../uploads');
             //$file_path =  $image_path.$file_data['file_name'];
            $config['upload_path'] = $image_path;
            $config['allowed_types'] = '*';
            $config['max_size'] = '100';
            $config['max_width'] = '1024';
            $config['max_height'] = '768';

            $this->load->library('upload', $config);

            if (!$this->upload->do_upload()) {
                $error = array('error' => $this->upload->display_errors());

                $this->load->view('upload_form', $error);
            } else {

                $data = array('upload_data' => $this->upload->data());

                //$pramod=$data[upload_data][full_path];
                //print_r($pramod);
                $this->load->view('upload_success', $data);
                $this->usermodel->save_csv($data);
            }
        }

这是给我的错误:

A Database Error Occurred

    Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'C:/wamp/www/mapApplication/uploads/pramotion113.csv INTO TABLE ' at line 1

LOAD DATA INFILE C:/wamp/www/mapApplication/uploads/pramotion113.csv INTO TABLE promotion_product FIELDS TERMINATED BY ',' ESCAPED BY '\' LINES TERMINATED BY ' ' IGNORE 1 LINES

Filename: C:\wamp\www\mapApplication\system\database\DB_driver.php

Line Number: 330

【问题讨论】:

  • 如果文件是在 Windows 中生成的,您可能需要使用:LINES TERMINATED BY '\r\n' 否则视情况而定。
  • 应用文件夹中没有生成文件
  • dev.mysql.com/doc/refman/5.1/en/load-data.html ...它说如果文件不是在windows上生成的,你可能需要使用\r
  • 我正在使用 \r 但出现同样的错误
  • 试试LOAD DATA INFILE '$infile'LOAD DATA INFILE '".$infile."' - 很可能应该用引号括起来。

标签: php mysql codeigniter csv


【解决方案1】:

SequelProPHPmyAdmin 之类的工具可以轻松完成此操作,或者您是否有特定的原因想要在 CodeIgniter 中使用它?

编辑:

这篇文章似乎有很多与您想要达到的目标相关的信息: PHP - Import CSV file to mysql database Using LOAD DATA INFILE

【讨论】:

  • 这应该是评论,而不是答案。尽管我意识到您还没有足够的代表发表评论。答案可能永远不应该包含问题。
  • 我明白,我对 stackoverflow 很陌生,你说得对,在发帖时,我没有足够的代表发表评论 - 我想是因为我能够评论,我现在有代表发表评论。 :)
猜你喜欢
  • 2012-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-21
相关资源
最近更新 更多