Я пытаюсь вставить данные в таблицу MySql из csv-файла, используя PHP,
см. это изображение – мой файл CSV.
проблема, с которой я сталкиваюсь, – при загрузке CSV-файла столбец net_sales округляется и вставляется в таблицу.
см. ниже образец образа MySql Table после вставки.
FYI, здесь я показываю только столбец net_sales для объяснения моей проблемы, на самом деле у меня больше столбцов в таблице и CSV.
по каким-то причинам у меня нет статического оператора вставки, такого как "insert into tran_detail (tran_id,tran_datetime,net_sales) values (...)";
поэтому я предпочитаю иметь этот оператор "INSERT INTO tran_detail (".implode(',', array_keys($data)).") VALUES('".implode('\',\'', array_map("convert",array_values($data)))."')";
это PHP, который я использую для вставки. пожалуйста, помогите вставить значение с десятичными знаками в таблице, как в CSV.
function convert($string) { return htmlspecialchars($string,ENT_QUOTES); } $columnArray = array(); $dataArray = array(); $firstRule = true; while ($data = fgetcsv ($source, 1000, ",")) { if($firstRule) { foreach($data as $columnName) { $columnArray[] = $columnName; } $firstRule = false; } else { $rule = array(); for($i = 0; $i < count($data) ; $i++) { $rule[$columnArray[$i]] = $data[$i]; } $dataArray[] = $rule; } } foreach($dataArray as $data) { $query = "INSERT INTO `tran_detail` (".implode('`,`', array_keys($data))."`) VALUES('".implode('\',\'', array_map("convert",array_values($data)))."')"; mysql_query($query) or mysql_error(); } fclose($source);