Как преобразовать и вставить строковое значение 9,999,99 в float / double в sql, используя php - PullRequest
0 голосов
/ 22 января 2019

У меня есть массивы данных (импорт из Excel) значений в строке.Одним из данных являются учетные номера, например: 9 999,99

тип данных my sql для этих учетных номеров - число с плавающей запятой.каждый раз, когда я вставляю значение .. он хранит только 9 вместо 9 999,99 И я планирую хранить в формате 9999,99 (без запятой)

Я не могу изменить тип данных sql на строку, так как это будет использоваться для расчетов позжена .. так как мне конвертировать и хранить данные?

ценим ваши предложения.Спасибо

Это мой код для вставки в БД

// To set HMS daily collection
function set_pbb_data($sheetDataPBB)
{
    $OK = 0;
    $notOK = 0;
    $firstElement = true;

    foreach ($sheetDataPBB as $value)
    {
        if ($firstElement) {
            $firstElement = false;  
        }
        else {
            $dbEntry = array(
            'sett_date'     => $value[0],
            'trans_date'    => $value[1],
            'card_no'       => $value[2],
            'card_type'     => $value[3],
            'trans_curr'    => $value[4],
            'trans_amt'     => $value[5],
            'sett_curr'     => $value[6],
            'sett_amt'      => $value[7],
            'gross_cur'     => $value[8],
            'gross_amt'     => $value[9],
            'mdr'           => $value[10],
            'mid'           => $value[11],
            'approval_code' => $value[12],
            'status'        => $value[13],
            'tid'           => $value[14],
            'batch_no'      => $value[15],
            'dba'           => $value[16],
            'trace_no'      => $value[17],
            'prod_type'     => $value[18]
            );
            if ($value[0] != null){ 
                $this->db->insert('pbb_cc_tbl', $dbEntry);
                if ($this->db->affected_rows() > 0) {
                    $OK++;
                }
                else {  
                    echo '<script>alert(" '.$value[0].' Already Exist!");</script>';
                    $notOK++;
                }   
            }           
        } //end-if
    } //end-foreach

    if ($this->db->affected_rows() > 0) {
        echo '<script>alert("'.$OK.' PBB Data Added Successfully");  </script>';
    }
    else {  
        echo '<script>alert("'.$notOK.' PBB Data Already Exist!"); window.history.back();</script>';
    }       
}

Ответы [ 2 ]

0 голосов
/ 22 января 2019

вы можете использовать встроенную функцию php, чтобы удалить ',' из вашей строки

</p> <pre><code>$a ='9,999.99'; //9,999.99 $a=str_replace(',','',$a); //9999.99

0 голосов
/ 22 января 2019

читать каждую строку в Excel и вставлять одну за другой, используя SQL-запрос

 insert into database.table (value) values (cast("999,99" as decimal(9,3))); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...