2013-12-08 2 views
0

Я выполняю функцию импорта для .sql-файлов. Я попытался выполнить шаги, приведенные в этой ссылке http://ellislab.com/forums/viewthread/151225/#733423, но я продолжаю получать ошибку «Запрос был пуст».Ошибка Codeigniter "Query was empty" при импорте файла .sql

Это мой код:

// Я переезжаю загруженный файл в папку с именем «путь» и попытаться загрузить его там.

$file = $_FILES['file']['name']; 

$file_path = './path/'; 

move_uploaded_file($_FILES['file']['tmp_name'], $file_path.$file); 

$file = $this->load->file($file_path.$file, true); 

$file_array = explode(';', $file); 

foreach($file_array as $query) { 

$this->db->query("SET FOREIGN_KEY_CHECKS = 0"); 
$this->db->query($query); 
$this->db->query("SET FOREIGN_KEY_CHECKS = 1"); 

} 

После выполнения функции я получаю сообщение об ошибке, но данные были успешно вставлены в базу данных. Кажется, я не понимаю, что здесь не так. Пожалуйста, помогите мне.

ответ

3

Последнее значение $file_array может быть пустой, так что вы должны сделать так:

foreach($file_array as $query) { 
    if (!empty(trim($query))){ 
     $this->db->query("SET FOREIGN_KEY_CHECKS = 0"); 
     $this->db->query($query); 
     $this->db->query("SET FOREIGN_KEY_CHECKS = 1"); 
    } 
} 
+0

Спасибо. Пробовал, но все равно не повезло. – user3079254

+0

изменение немного, попробуйте. – iodragon

+0

линия если (! Пустой (обрезки ($ запроса))) дал мне немного ошибок, поэтому я изменил его: (! Пусто ($ ул)) $ ул = подрезать ($ запроса) если { } И теперь это работает! Я не могу поверить, что все просто. Большое спасибо! – user3079254

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