2013-04-07 5 views
0

Это не работает, как мы обсуждали ранее, по какой-то причине, и я сделал, это создать $vars для загруженного файла.CSV вставить в базу данных

Code available here (Pastebin).

Но никогда не вставляет ничего

  • При выполнении var_dump($csv_row) я получаю: bool(false)
  • var_dump($fh) шоу: resource(89) of type (stream)
  • var_dump($insert_str) показывает все 1700 записей из файла CSV (очевидно, слишком большой, чтобы опубликовать здесь)

Так что я предполагаю, что заявление while или целое от if утверждение где-то не так. На самом деле я был бы очень признателен за помощь в этом вопросе, мне нужно заставить его работать завтра (понедельника)

ответ

0

Возможно, вы используете неправильную базу данных codeigniter. Я могу видеть

$this->db->set($insert_str); 

но не $this->db->insert() не был найден. Метод set() полезен только при использовании update() или insert(), See the docs, ищите $this->db->set().

Вы либо хотите использовать $this->db->insert_batch() (на той же странице документа, к сожалению, нет прямых ссылок для разделов), и создайте массив массивов с вашими записями (так что вам не нужно будет создавать длинную строку sql). Или вы можете использовать $this->db->query() и просто подать $insert_str туда, куда вы сейчас звоните $this->db->set().


По вашему вопросу:

var_dump ($ insert_str) показывает все 1700 записей из файла CSV

Так я бы исключил возможность цикла while или if не работает.

0

Поместите этот код в верхней части контроллера или перед чтением файла CSV

ini_set('auto_detect_line_endings', true);

Проверьте, если это будет работать для вас

Смежные вопросы