Intereting Posts
Поиск в MySQL с пробелами Когда предложение mysql WHERE пустое, верните все строки Проблема фрагментации кеша APC PHP. Как получить и получить важные данные из учетной записи электронной почты pop3? вставлять данные в базу данных с помощью codeigniter PHP: как я могу загрузить содержимое веб-страницы в переменную? Добавление Google Analytics на сайт PHP Безопасная связь между JavaScript и веб-службой в PHP Анализ вложенных JSON для получения значений вложенных массивов Почему я получаю «Предупреждение: mysql_connect (): Доступ запрещен для пользователя» при попытке подключения? Ошибка PHP MYSQL при вызове нескольких хранимых процедур Вычисляет разницу между двумя датами в PHP PHP самый точный / безопасный способ получить реальный IP-адрес пользователя в 2017 году Выполнение функций репозитория в задаче планировщика Как извлечь определенный текст из pdf с помощью php

Справка по импорту csv PHP – Десятичные значения становятся округленными значениями при вставке в таблицу

Я пытаюсь вставить данные в таблицу 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);