Как сохранить номера в базе данных MySQL как есть? - PullRequest
0 голосов
/ 13 ноября 2018

Мне нужно сохранить номера в базе данных, как это показано в примере.

  • в настоящее время я сохраняю номер как 22,5, а в базе данных он сохраняется как 22.

  • число в базе данных установлено как целое число

    //sometimes $number can be "33.5" or "33" or "1" or "1.003"or "03"
    $sql = "INSERT INTO active (name, number) VALUES ('somename','$number')";
    

Ответы [ 4 ]

0 голосов
/ 13 ноября 2018

Если вы хотите сохранить номер как 22,5 и в базе данных. Затем вам нужно изменить структуру столбца таблицы. Вместо Integer / Int установлено значение с плавающей точкой Затем Далее устанавливается длина 10,2 для информации, пожалуйста, проверьте ниже экран короткий

enter image description here

Тогда вы получите правильный вывод Счастливое программирование

0 голосов
/ 13 ноября 2018

Прежде всего, необходимо проверить структуру таблицы active. Из вашего вопроса я понимаю, что различные типы числовых значений будут сохранены в столбец number. И я предполагаю, что тип столбца number в таблице active является числовым для типов int. Например, INT или BIGINT или любые другие целочисленные типы.

Вот что я обычно делаю. Просто используйте varchar для number поля. Это может не звучать как профессионал. Но это очень просто в использовании. Таким образом у вас не возникнет проблем с сохранением числового значения в столбце. У меня возникла похожая проблема при сохранении значения широты и долготы в таблице. И у php есть много функций для получения фактического значения типа float или int из строки. Так что это простой и простой способ исправить.

0 голосов
/ 13 ноября 2018

Один из самых простых и надежных способов сохранить числа / целые числа / числа с плавающей точкой в ​​базе данных - преобразовать их в строку и затем сохранить их в базе данных.

Примечание: Ваш тип столбца базы данных должен иметь тип string / text.

Одним из преимуществ этого метода является то, что вы можете преодолеть пределы int / float / double.

$string_number = (string)$number;
$float_number = (float)$string_number;
0 голосов
/ 13 ноября 2018

Если вы сделаете столбец число как тип данных DECIMAL , он будет содержать десятичную точку со всеми числами.Целочисленные столбцы не могут содержать десятичные точки.

Если это не ваше требование, лучше использовать VARCHAR в качестве типа данных (но НЕ РЕКОМЕНДУЕТСЯ ).

Надеюсь, это поможет.

...