2016-05-23 2 views
1

Я работаю над csv Импорт в базу данных, я успешно прочитал содержимое файла csv, и следующий код импортирует содержимое в базу данных.Вставить данные в поле таблицы базы данных с типом decimal (12,2)

<?php 
foreach ($data as $value) { 
    $data = array (
    'checklist_item_id' => ($this->table == 'checklist_item') ? $this->id : null, 
    'imp_sequence_no' => $value['Sequence No.'], 
    'imp_vendor_tin' => $value['Vendor TIN'], 
    'imp_vendor_name' => $value['Vendor Name'], 
    'imp_input_vat_per_client' => $value['Input VAT per client'], 
    'imp_gsi '  => $value['Goods/Services/Importations'] 
); 
    $this->db->insert("transaction", $data); 
} 
?> 

Эта линия

'imp_input_vat_per_client' => $value['Input VAT per client'], 

кода, имеет значение с десятичной точкой, а иногда и с запятой.

, например:

624.00 
    312.00 
    1,137.57 

imp_input_vat_per_client, это имя поля с типом decimal(12,2).

Я успешно вставить данные в базу данных, но, значение поля imp_input_vat_per_client во всех строках являются,

0.00 

Можете ли вы дать объяснение того, что случилось? Что с этим делать?

+0

то будет значение по умолчанию для типа данных DECIMAL, вы, вероятно, вставив пустые значения! – Hytool

+0

Нет, я уверен, потому что, когда вы используете var_dump, это показывает, что есть – Fil

+0

. Я думаю, что вы отправляете значение String в данные, например, вы отправляете значение $ value = "10,22"; –

ответ

0

Изменение:

'imp_input_vat_per_client' => $value['Input VAT per client'], 

в

'imp_input_vat_per_client' => floatval(str_replace(',', '', trim($value['Input VAT per client']))), 
+0

Это работает, спасибо, но вы забыли '$ value' в' trim (['Input VAT per client' ]))) ' – Fil

+0

извините .. я обновил его сейчас. –

+0

Это нормально, я получаю – Fil

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